-1

我在使用正则表达式以及 xml 和 xpath 时遇到了一个小问题。

我有一个这样的xml文件

消息.xml

<message>
  <text>dog goes woof</text>
</message>
<message>
  <text>cat goes meow, dog goes woof, fish goes blub</text>
</message>

然后我有一个 xpath 表达式,它允许我选择具有文本节点的文本节点,因为狗像这样

   String expression = "//text[.='dog goes woof']";
   NodeList nodeList = (NodeList) xPath.compile(expression).evaluate(messages, XPathConstants.NODESET);

这里的“messages”是 Document 变量,它引用 messages.xml 文件。

当我遍历 nodeList 时,它只选择第一个文本节点。我也想选择另一个包含 dog go woof 的文本节点。那么我如何在 xpath 表达式中指定以检查其中包含 dog go woof 的文本节点。

请让我知道该怎么做。

谢谢

4

2 回答 2

2

您可以使用该contains()功能,或者如果您真的想使用正则表达式,您可以使用该matches()功能

"//text[contains(text(), 'dog goes woof')]"
于 2013-09-18T09:21:48.350 回答
1

您需要在 xpath 中使用 contains,例如//text()[contains(., 'dog goes woof')]

于 2013-09-18T07:15:01.013 回答