Mat*_*tt5 4 xml text-processing xmlstarlet
仅针对嵌入其他指定标签中的指定标签,将一个标签值替换为另一个标签值的 xmlstarlet 命令是什么?
示例:搜索 tag 的每个出现,仅当它在标签内(在其他标签内)时才b需要替换为:d<a> ... </a>
<c>This is <b>an example</b>. <a>This is <b>a test;</b></a></c>
Run Code Online (Sandbox Code Playgroud)
<c>This is <b>an example</b>. <a>This is <d>a test;</d></a></c>
Run Code Online (Sandbox Code Playgroud)
这篇文章与如何在 XML 文件中将某些指定标签中的特定字符串替换为我试图找到的格式化 xml 文件的解决方案中嵌入标签中的其他字符串相关。
$ cat file
<c>This is <b>an example</b>. <a>This is <b>a test;</b></a></c>
Run Code Online (Sandbox Code Playgroud)
$ xmlstarlet ed --rename '//a/b' -v 'd' file
<?xml version="1.0"?>
<c>This is <b>an example</b>. <a>This is <d>a test;</d></a></c>
Run Code Online (Sandbox Code Playgroud)
这将重命名b直接出现在节点下的所有节点a。这些节点的新名称将为d。由于我在 XPath 表达式//的前面使用,因此节点位于文档结构中的a/b位置并不重要。a