我需要從XML中獲取數據,我正在使用XPath,雖然我很喜歡它,但對它來說很新穎。使用XPATH返回多個節點屬性
/cesAlign/linkGrp[@targType='s']
現在我想獲得在節點另一個屬性的值:
/cesAlign/linkGrp[@targType='s']/@fromDoc
然而,這
我根據自己的屬性,這樣的檢索某些節點僅返回第一個命中。我想返回一個包含targType ='s'
我想遍歷節點列表,然後讀取屬性......像這樣的所有節點的屬性:
expr = xpath.compile("/cesAlign/linkGrp[@targType='s']/@fromDoc");
NodeList nl = (NodeList) expr.evaluate(doc, XPathConstants.NODESET);
int i = 0;
for (i = 0; i < nl.getLength(); i++) {
expr = xpath.compile("/@fromDoc");
System.out.println((String) expr.evaluate(nl, XPathConstants.STRING));
}
但我不知道如果有更好更優雅的方式來做到這一點。
下面是一個示例XML:
<cesAlign version="1.0">
<linkGrp targType="s" toDoc="mt/C2004310.01029701.xml.gz" fromDoc="en/C2004310.01029701.xml.gz">
<linkGrp targType="s" toDoc="mt/C2004310.01029702.xml.gz" fromDoc="en/C2004310.01029702.xml.gz">
</cesAlign>
謝謝!