我一直在寻找答案,但是找不到解决方法。
我有一个返回xml文档的呼叫。我根本没有能力修改此文档。在实际的XML转储之前,有40个换行符和1个制表符。我想知道,仅使用Xpath表达式,如何忽略所有空白并直接到达节点?
示例:
<root xmlns:foo="http://www.foo.org/" xmlns:bar="http://www.bar.org">
<employees>
<employee id="1">Johnny Dape</employee>
<employee id="2">Al Pacino</employee>
<employee id="3">Robert De Niro</employee>
<employee id="4">Kevin Spacey</employee>
<employee id="5">Denzel Washington</employee>
</employees>
Xpath expression: root/employee/ works as expected
但是在它前面放一吨空白将导致它不拉任何东西,如下所示
\n
<root xmlns:foo="http://www.foo.org/" xmlns:bar="http://www.bar.org">
<employees>
<employee id="1">Johnny Dape</employee>
<employee id="2">Al Pacino</employee>
<employee id="3">Robert De Niro</employee>
<employee id="4">Kevin Spacey</employee>
<employee id="5">Denzel Washington</employee>
</employees>
答案 0 :(得分:1)
对于大多数XPath表达式而言,紧接在根元素之前的空格的存在并不重要。这包括/root/employees
或root/employees
。请注意,您最初发布的root/employee
不会选择任何内容。
禁止在XML声明(<?xml version="1.0" encoding="utf-8"?>
)前加空格。在这种情况下,您必须删除此类空格,以使XML文档格式正确,这是使用XPath的要求。 (请注意,您还必须关闭root
元素-在发布的XML中未显示。)