通过 Xpath 表达式删除前导白色 space
Remove leading white space via Xpath expression
我一直在寻找这个问题的答案,但一直找不到解决方案。
我接到电话说 returns 一份 xml 文件。我根本没有能力修改这份文件。在实际 XML 转储之前,有 40 个换行符和 1 个制表符。我想知道,仅使用 Xpath 表达式,如何忽略所有白色 space 并直接到达节点?
示例:
<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
但是在它前面放一吨白色 space 会导致它什么都拉不出来,如下所示
\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>
紧接在根元素之前的空格对大多数 XPath 表达式没有影响。这包括 /root/employees
或 root/employees
。请注意,正如您最初发布的那样,root/employee
不会 select 任何内容。
禁止在 XML 声明 (<?xml version="1.0" encoding="utf-8"?>
) 之前使用空格。在这种情况下,您必须删除此类空格以使 XML 文档成为 格式良好的 ,这是使用 XPath 的要求。 (请注意,您还必须关闭 root
元素 – 未显示在您发布的 XML 中。)
我一直在寻找这个问题的答案,但一直找不到解决方案。
我接到电话说 returns 一份 xml 文件。我根本没有能力修改这份文件。在实际 XML 转储之前,有 40 个换行符和 1 个制表符。我想知道,仅使用 Xpath 表达式,如何忽略所有白色 space 并直接到达节点?
示例:
<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
但是在它前面放一吨白色 space 会导致它什么都拉不出来,如下所示
\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>
紧接在根元素之前的空格对大多数 XPath 表达式没有影响。这包括 /root/employees
或 root/employees
。请注意,正如您最初发布的那样,root/employee
不会 select 任何内容。
禁止在 XML 声明 (<?xml version="1.0" encoding="utf-8"?>
) 之前使用空格。在这种情况下,您必须删除此类空格以使 XML 文档成为 格式良好的 ,这是使用 XPath 的要求。 (请注意,您还必须关闭 root
元素 – 未显示在您发布的 XML 中。)