如何在xpath中显示没有元素名称的文本

时间:2019-02-09 21:15:40

标签: xml xpath

示例xml是:

<Parents>
  <Parent>
    <Children>
      <child>child2_Parent_1</child>
      <child>child4_Parent_1</child>
      <child>child1_Parent_1</child>
      <child>child3_Parent_1</child>
    </Children>
    <Children>
      <child>child1_parent2</child>
      <child>child2_parent2</child>
      <child>child4_parent2</child>
      <child>child3_parent2</child>
    </Children>
  </Parent>
</parents>

我只想选择所有孩子, 选择的快递是:

/parents/parent/children/child

结果是:

Element='<child>child2_Parent_1</child>'
Element='<child>child4_Parent_1</child>'
Element='<child>child1_Parent_1</child>'
Element='<child>child3_Parent_1</child>'
Element='<child>child1_parent2</child>'
Element='<child>child2_parent2</child>'
Element='<child>child4_parent2</child>'
Element='<child>child3_parent2</child>'

但是我只想输入没有elemnet /节点名称的文本。

child2_Parent_1
child4_Parent_1
...

3 个答案:

答案 0 :(得分:2)

您需要使用var url = "http://localhost:8080/wordCount"; var params = { sentence: "blah" }; var config = { params: params }; $http.post(url, data, config); 节点函数:

text()

答案 1 :(得分:0)

XPath选择节点,它不显示结果。如果要以不同的方式显示这些节点,则不必更改选择它们的方式,只需要更改它们的显示方式即可。您尚未告诉我们如何执行XPath表达式并显示其结果,但这就是您需要更改的地方。

您可以更改表达式以添加/text(),这可能使结果更接近您想要的结果,但是显示输出仍然取决于您如何使用XPath评估的结果,而不取决于XPath评估本身。

答案 2 :(得分:-1)

尝试使用contains(text)方法。见下文。

Parents//Children/child[contains(text(),'child')]

我在Parents之后使用//的相对路径。这将grep您xml中的所有相同模式。这里的技巧是,我假设每个文本都有或包含“子”字符串/文本。如果是这样,那么您将获得所需的结果。