【发布时间】:2016-12-27 18:01:47
【问题描述】:
我想在 XML 元素中转义双引号。比如
来自
<person name="Tiberius Claudius "Maximus"" sex="M">
到
<person name="Tiberius Claudius "Maximus"" sex="M">
我能够使用 sed 隔离属性值:
$ cat sample.xml | sed -r 's/(<person name=")(.*)(" sex.*)/\2/'
Tiberius Claudius "Maximus"
有没有办法在第二组中用&quot; 替换双引号"?
【问题讨论】:
-
sed 从什么时候开始支持
.*?? -
我看到您将 Perl 作为您的标签之一,这很好,因为您需要像
XML::Twig这样的适当 XML 解析器,而 sed 没有。您还应该使用XML::Entities对您的文本进行编码。 -
@Borodin 曾经有。我删除了“perl”标签,因为标题或问题中的任何内容都与 perl 无关。 :-/
-
您能否提供一个使用 XML::Entities 的示例?谢谢!
-
我现在看到你已经删除了你的 Perl 标签。这是一个非常糟糕的举动。使用正则表达式模式可靠地解析 XML 是不可能的。