我正在尝试使用 Saxon 9.5 HE Java 库在 XML 文档中进行一些 XPaths 查询。我使用 net.sf.saxon.xpath.XPathEvaluator 创建了查询,并希望从 XML 文档中获取所有书名。不幸的是我只获得了第一个称号。这是我的示例代码:
public static void main(String[] args)
{
try
{
InputSource is = new InputSource(new File("books.xml").toURI().toURL().toString());
String x = new XPathEvaluator().evaluate("//book/title", is);
System.out.println(x);
}
catch(Exception e)
{
e.printStackTrace();
}
}
谢谢和亲切的问候:)
最佳答案
我刚刚使用 XPathCompiler 实现了一个解决方案:
这很好用。有兴趣的可以看看源码:
public static void main(String[] args)
{
try
{
Processor proc = new Processor(false);
DocumentBuilder builder = proc.newDocumentBuilder();
XPathCompiler xpc = proc.newXPathCompiler();
XPathSelector selector = xpc.compile("//book/title").load();
selector.setContextItem(builder.build(new File("books.xml")));
for (XdmItem item: selector)
{
System.out.println(item.getStringValue());
}
}
catch(Exception e)
{
e.printStackTrace();
}
}
关于java - Saxon XPathEvaluator 只返回第一个结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16854574/