如何使用DOM Java在xml中搜索子节点

时间:2014-12-09 13:29:04

标签: java xml dom xpath

我有以下XML结构

<CodeSnippet>
<Code id="code1">
<Tags>button java</Tags>
<Snippet>sample code</Snippet>
</Code>
<Code id="code2">
<Tags>eclipse jbutton java</Tags>
<Snippet>sample code</Snippet>
</Code>
<.....>
</CodeSnippet>

现在,当我使用Tags搜索时,我想从上面的xml中检索所有Snippet。例如,如果搜索&#34; java&#34;然后所有包含标签的节点为&#34; java&#34;必须返回代码段。

我的搜索查询是:

//Code/Tags[contains(concat(' ',/text(),' '), ' "+ searchTags[0] +" ')]";

这里,searchTags [0]包含&#34; java&#34;。

我的结果集应该包含所选节点的片段,即xml结构上面的code1和code2。

3 个答案:

答案 0 :(得分:1)

试试这个表达式:

//Code/Tags[contains(., 'Java')]/../Snippet

答案 1 :(得分:0)

为了检索包含“java”的所有“Tags”,我使用了下面的xpath表达式

// Code / Tags / text()[contains(。,'java')]

为了检索与标签“java”相关的所有“Snippet”,我使用了以下表达式

//代码/标签[包含(./ text(),'java')] / parent :: Code / Snippet / text()

感谢@dfsq帮助我解决他的表情。非常感谢。

答案 2 :(得分:0)

你可以写:

//Tags//Snippet

如果你使用XPath