我有一个XML文件,其中包含一些需要在运行时更改的节点。例如:
<pt:Type>#type</pt:Type>
<pt:Value>#value</pt:Value>
我想扫描XML文件并搜索具有&#34;#&#34;的节点。它的模式。我的目的是使用内存中的一些数据来填充XML。哪种是用Java完成它的最快方法?也许有一个XPath表达式来收集具有特定值的所有节点?
答案 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(), '#')]