【问题标题】:sed how to append a comment after <?xml [something ?>sed 如何在 <?xml [something ?> 之后附加评论
【发布时间】:2012-03-28 09:46:36
【问题描述】:

我想在 xml 文件的开头添加注释。因为任何 xml 文件的第一行总是必须像 &lt;?xml version="1.0" encoding="UTF-8"?&gt; 我的评论必须在那之后。

据我所知:

sed '/<\?xml.*\?>/a \<!-- comment -->' test.xml

这几乎可以工作,但注释也添加在行之后

 <package xmlns="http://www.idpf.org/2007/opf" unique-identifier="uuid_id">

所以我的命令似乎有误。你能帮帮我吗?

【问题讨论】:

  • 这会给你格式错误的 xml。可以吗?
  • 不,不行。为什么它格式不正确?谢谢你的提示!
  • 对不起,我错了。有评论就可以了。 w3.org/TR/REC-xml/#sec-prolog-dtd无视我。 :o(
  • 没关系!最好再检查一次:)
  • 您是指任何 XML 文件的第一行吗?因为对于有效的 XML 文档,建议使用 XML 声明,但不是必需的。

标签: xml sed append


【解决方案1】:

知道了:

sed '/<?xml .*?>/a \<!-- comment -->' test.xml

(问号前没有反斜杠)

【讨论】:

  • 或者/也可以在 xml 之后添加一个空格(并删除另一个反斜杠)
【解决方案2】:

你的基本假设:

因为任何 xml 文件的第一行总是必须像 <?xml version="1.0" encoding="UTF-8"?>

大错特错。 XML 声明可以与此示例不同,也可以完全省略。而且它后面不必跟换行符。

使用 sed 等不支持 XML 的工具对 XML 进行任何操作都是一个坏主意,因为它没有考虑字符编码。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-22
    • 2016-01-31
    • 2016-12-16
    • 2019-09-21
    • 1970-01-01
    • 2012-09-28
    相关资源
    最近更新 更多