我試圖多次獲取FL標籤,但是當我嘗試內部節點列表時,它只能獲取第一個項目。更多信息請參閱我的輸出。這是XML數據,我從Web服務無法使用XML解析從XML獲取內部節點列表數據
<response uri="/ats/private/xml/JobOpenings/getRecords">
<result>
<JobOpenings>
<row no="1">
<FL val="JOBOPENINGID">
<![CDATA[ 100 ]]>
</FL>
<FL val="Published in website">
<![CDATA[ true ]]>
</FL>
<FL val="Modified by">
<![CDATA[ Admmin ]]>
</FL>
<FL val="Modified time">
<![CDATA[ Yesterday ]]>
</FL>
</row>
<row no="2">
<FL val="JOBOPENINGID">
<![CDATA[ 101 ]]>
</FL>
<FL val="Published in website">
<![CDATA[ true ]]>
</FL>
<FL val="Modified by">
<![CDATA[ Admin ]]>
</FL>
<FL val="Modified time">
<![CDATA[ 2 Days Ago ]]>
</FL>
</row>
<row no="3">
<FL val="JOBOPENINGID">
<![CDATA[ 102 ]]>
</FL>
<FL val="Published in website">
<![CDATA[ true ]]>
</FL>
<FL val="Modified by">
<![CDATA[ Admin ]]>
</FL>
<FL val="Modified time">
<![CDATA[ 2 Days Ago ]]>
</FL>
</row>
<JobOpenings>
<result>
</response>
得到這也是我在我的活動
public class AndroidXMLParsingActivity extends ListActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
XMLParser parser = new XMLParser();
String xml = parser.getXmlFromUrl(AppConfig.URL); // getting XML
Document doc = parser.getDomElement(xml); // getting DOM element
NodeList nodeList = doc.getElementsByTagName("row");
for (int i = 0; i < nodeList.getLength(); i++) {
Node node = nodeList.item(i);
Element playlistElement = (Element) node;
NodeList title = playlistElement.getElementsByTagName("FL");
for (int kl = 0; kl < title.getLength(); kl++) {
if (title.item(0).getChildNodes().item(0) != null) {
Element nameElement = (Element) title.item(0);
title = nameElement.getChildNodes();
Log.v("name===>", ((Node) title.item(0)).getNodeValue());
}
}
}
}
}
這裏使用的代碼是輸出:
12-04 15:56:08.694: V/name===>(3918): JOBOPENINGID 100
12-04 15:56:08.694: V/name===>(3918): JOBOPENINGID 101
12-04 15:56:08.704: V/name===>(3918): JOBOPENINGID 102
12-04 15:56:08.704: V/name===>(3918): JOBOPENINGID 103
12-04 15:56:08.704: V/name===>(3918): JOBOPENINGID 107
12-04 15:56:08.704: V/name===>(3918): JOBOPENINGID 108
12-04 15:56:08.704: V/name===>(3918): JOBOPENINGID 118
12-04 15:56:08.704: V/name===>(3918): JOBOPENINGID 200
請幫助我。 ...........
謝謝!現在,我能夠從使用XmlPullParser獲取數據,但依然沒能取FL標記值 <![CDATA [昨日]]> 現在我有隻能夠獲取「昨天」,但我還需要「修改時間」的值。 –
2014-12-04 12:14:20
嘗試獲取整個TAG(START_TAG),然後在其上做一個子字符串,因爲他可能會從該TAG獲取所有內容。 – 2014-12-05 12:05:23
要從val =「something」獲取「某物」,請使用[getAttributeValue(null,「val」)](http://developer.android.com/reference/org/xmlpull/v1/XmlPullParser.html#getAttributeValue java.lang.String,%20java.lang.String))當你在'START_TAG'和'getName()'是「FL」時。 – TWiStErRob 2014-12-07 10:52:43