最快(实现)在XML节点中查找模式的方法

时间:2014-11-11 14:27:52

标签: java xml xpath

我有一个XML文件,其中包含一些需要在运行时更改的节点。例如:

<pt:Type>#type</pt:Type>
<pt:Value>#value</pt:Value>

我想扫描XML文件并搜索具有&#34;#&#34;的节点。它的模式。我的目的是使用内存中的一些数据来填充XML。哪种是用Java完成它的最快方法?也许有一个XPath表达式来收集具有特定值的所有节点?

3 个答案:

答案 0 :(得分:1)

我的建议是用java这样的XQuery模式匹配

XQExpression xqe = xqc.createExpression();
xqe.executeQuery("doc('orders.xml')//order[id='174']");

答案 1 :(得分:1)

Xpath

第一个文本子节点等于'#type'的任何节点:

//*[text() = '#type']

第一个文本子节点以“#”开头的任何节点:

//*[starts-with(text(), '#')]

规范化空格后,第一个文本子节点以“#”开头的任何节点:

//*[starts-with(normalize-space(text()), '#')]

答案 2 :(得分:1)

您可以使用带有contains条件函数的 XPath 查询,该函数将返回哪些值包含所提供的字符集的元素。它应该类似于以下内容:

//*[contains(text(), '#')]