【发布时间】:2021-12-01 02:55:48
【问题描述】:
给定以下 XML
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<response xmlns="...">
<root>
<test>abc</test>
</root>
</response>
我需要像这样为每个元素添加一个命名空间:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ns:response xmlns:ns="...">
<ns:root>
<ns:test>abc</ns:test>
</ns:root>
</ns:response>
sed 可以吗?我知道sed 不是处理 XML 的最佳工具...
可能有嵌套节点,但没有一个已经拥有命名空间。最后,没有属性。
【问题讨论】:
-
如果没有更详细的说明您需要做什么,很难知道 - 对于给出的单个示例,您可以使用
s/test/ns:test/g但我确定这不是您想要的。 -
我不知道节点的名称......我只需要一种简单的方法来将给定的命名空间添加到 XML 中的所有节点。您建议的解决方案意味着我知道标签...
-
我的建议是故意指出你没有给我们足够的信息。你曾经在同一行有两个标签吗?嵌套标签?标签是否包含字符串“ns:”?是否有任何标签已经 有命名空间前缀?它们中的任何一个都有属性吗?有没有自闭的?所有这些复杂性都可能使某些解决方案无效。
-
好的,更新问题。
标签: xml sed xml-namespaces