2
我有一個簡單的XML,並且我想獲取這些屬性。網絡上有幾個例子,但我仍然不明白爲什麼只有4時才能得到17。我甚至嘗試計算我認爲文本可能存在的位置,但仍然沒有得到那個數字,除非是長度的輸出。這導致我不知道如何獲取所有Tag3的屬性名稱。獲取太多子節點並且無法獲取屬性
<?xml version="1.0" encoding="UTF-8"?>
<tag1 xmlns="something">
<xxxxxx-Set>
<tag3 Name="a"/>
<tag3 Name="b"/>
<tag3 Name="c"/>
<tag3 Name="d"/>
</xxxxxx-Set>
<tagB>
<tag3 Name="a"/>
<tag3 Name="b"/>
<tag3 Name="c"/>
<tag3 Name="d"/>
</tagB>
</tag1>
這是我的Java代碼:
import java.io.File;
import java.util.Arrays;
import java.util.List;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
public class ParseXML {
public static void main(String[] args) {
try {
File test= new File("test.xml");
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(test);
NodeList tagAs= doc.getElementsByTagName("xxxxxx-Set").item(0).getChildNodes(); //should be all the tag3 elements?
for(int i = 0; i < tagAs.getLength(); i++) {
System.out.println(tagAs);
System.out.println(i);
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
注意:添加.getAttributes()getNamedItem( 「名稱」)getNodeValue()來打印語句給我空例外。 和輸出是:
[xxxxxx-Set: null]
0
[xxxxxx-Set: null]
1
...
[xxxxxx-Set: null]
16
爲什麼在你的xml中有這麼多的「 」? –
Burkhard
將'System.out.println(tagAs);'替換爲'System.out.println(tagAs.item(i).getNodeName());'並且在Xml中找出一些有趣的節點。 – user1516873
對不起,這些額外的 是一個錯誤。或之前的額外項目。我已經看到了關於文本元素,我想它會在這裏 裏面。有沒有辦法解決這個問題,或者只是打印一些奇怪的東西? –
Juan