我遇到的情况是我有一个节点列表,我需要使用xpath
从节点获取值。
这是我正在尝试的......
<book>
<book1>
<abc><fm>text</fm></abc>
<def></def>
<ghi></ghi>
</book1>
<book2>
<abc><fm>text</fm></abc>
<def></def>
<ghi></ghi>
</book2>
<bookN>
<abc><fm>text</fm></abc>
<def></def>
<ghi></ghi>
</bookN>
</book>
所以这里我从文档中获取节点列表并使用节点我正在评估XPATH
String nodeValue = (String) xPathFac
.compile("//fm/text()")
.evaluate(bookNode, XPathConstants.STRING);
在这里返回我的空字符串,有人在这里帮助我:)
我试过了// fm / text()但没有用
答案 0 :(得分:0)
由于你有不同的节点,即book1,book2,book3等,你需要创建disti / BOOK1 / ABC / FM /第二册/ ABC / FM / BOOK3 / ABC / FM
XPath确实支持正则表达式。希望这会有所帮助。
/[substring(name(), 4) = 'book']/abc/fm
理想情况下,您应该将XML构造成:
<books>
<book>
<abc><fm>text</fm></abc>
<def></def>
<ghi></ghi>
</book>
<book>
<abc><fm>text</fm></abc>
<def></def>
<ghi></ghi>
</book>
<book>
<abc><fm>text</fm></abc>
<def></def>
<ghi></ghi>
</book>
</books>