1

是否有可能使用 Xpath 在 xml 文件中执行全文搜索并使用 java 选择它们?我想选择包含特殊词的所有元素(无论是注释、节点还是属性)。例如:搜索“bob”我想得到 tag1、bob1 和 tag3 作为结果

<tag1 name="bob">
    <tag2/>
    <bob1/>
    <tag3 bob="true"/>
</tag1>

如果可能的话,我更喜欢不使用外部包的解决方案。如果有人可以帮助我,我会非常高兴。直到现在我都找不到这样的东西。非常感谢!亲切的问候

编辑:我正在寻找一种可能性来找到“鲍勃”这个词的每一次出现,不管鲍勃有什么功能!

4

2 回答 2

1

您可以编写一个简单的 SAX 解析器来处理您的 XML。这是Oracle SAX 入门教程

您可以遍历所有节点,标记(并保存)那些您感兴趣的节点,并将结果节点作为新的 XML 文档、字符串或任何您想要的形式返回。

于 2013-06-07T22:38:06.337 回答
1

XPath 定义了 contains() 函数(请参阅http://www.w3.org/TR/xpath/#function-contains),您可以在如下表达式中使用它:

//*[contains(., "wordtosearchfor")]

这将找到包含该单词的所有元素

要查找包含该单词的所有属性,您可以使用:

//*[@*[contains(., "wordtosearchfor")]]

这将找到所有具有包含单词的属性的元素

但是,正如您所说的那样,问题不是很好。您提供的 XML 示例格式不正确,包含“bob”也不正确。所以很难准确地说出你想要做什么。

于 2013-06-07T23:52:08.973 回答