为什么 XMLStarlet 会为 XML 文本节点返回额外的空格/换行符?

为什么 XMLStarlet 会为 XML 文本节点返回额外的空格/换行符?

我正在尝试使用XMLStarlet为了翻译目的,https://superuser.com/questions/598910/translate-text-nodes-of-graphml-xml-cas但是虽然我尝试读取的节点已返回,但返回了空格/换行符。 示例 XML 可在另一个问题中找到,程序调用如下:

xml sel --noblanks --text --template --nl --value-of "//y:NodeLabel" --value-of "//y:EdgeLabel" my.graphml

导致

...
The node's text
...
          The edge's text
...

...代表空白行)

我希望有人能解释一下发生了什么,以及结果是否符合预期,或者是否是由 XMLStarlet 引起的。如果能提供固定的程序调用,那就太好了,当然,如果有必要,也可以使用替代程序或过滤空行(grep/sed/awk、CMD)。

答案1

xmlstarlet sel -T -t -v "//node/item" file.xml

并输出

<node><item>content</item></node>

为没有额外空格的文本。

答案2

我仍然不知道,但我解决了这个问题Pythonxml文件,它不会捕获节点成员中的空格text

答案3

问题是你添加了--nl命令。从文档

-n 或 --nl - 打印新行

这将为打印的每个元素添加一个换行符。

相关内容