小编Lol*_*ola的帖子

XPath 从多个节点获取文本

我需要使用以下名称创建一个 StringArray:

<xs:element name="xyz" type="xs:string/>

<xs:element name="bla" type="xs:string/>

...

如何查询“xyz”、“bla”等更多信息?

可能是你见过的最糟糕的代码,但无论如何:

NodeList result1 = (NodeList) xPath.evaluate("//@name", example, XPathConstants.NODESET);

for(int i=0; i<result1.getLength();i++) {
   System.out.println("read 1:" +result1.item(i));
}
//console output is:
//read 1:name="xyz"
//read 1:name="bla"

ArrayList<String> liste; 
liste = new ArrayList<String>(result1.getLength());
for (int i=0; i<result1.getLength();i++){
   String read=xPath.evaluate("//@name", example);
   liste.add(read);
   System.out.println("read 2: "+read);      
}

System.out.println("complete list: " +liste);

//console output is:
//read 2:name="xyz"
//read 2:name="xyz"
//complete list: [xyz, xyz]
Run Code Online (Sandbox Code Playgroud)

感谢您的帮助,让它以这种方式工作:

(以防万一..如果有人在这里寻找解决方案)

NodeList result = (NodeList) xPath.evaluate("//@name", example, XPathConstants.NODESET);
liste = new ArrayList<String>(result.getLength());
for(int …
Run Code Online (Sandbox Code Playgroud)

java xml xpath jaxp

6
推荐指数
1
解决办法
6429
查看次数

标签 统计

java ×1

jaxp ×1

xml ×1

xpath ×1