使用 xmlstarlet 删除 XML 中元素的值
to delete the value of the element in XML using xmlstarlet
我正在尝试使用 xmlstarlet 删除 xml 中元素的值:
我试过 xmlstarlet ed -d 命令来删除该值,但它没有用。
我还尝试使用 xmlstarlet ed -u 将值 123 替换为“”(空)。这也没有用。
有人可以帮助我如何得到这个:
输入:
<?xml version="1.0"?>
<List Name="myList">
<Dir Path="abc">123</Dir>
<Dir Path="cde">456</Dir>
<File Path="xyz">789</File>
<File Path="xxx">567</File>
</List>
输出:
<List Name="myList">
<Dir Path="abc"></Dir>
<Dir Path="cde"></Dir>
<File Path="xyz"></File>
<File Path="xxx"></File>
</List>
我想删除值“123”、“456”...
提前致谢
要删除所有文本节点,保留元素及其属性:
xmlstarlet ed -d '//text()' <input.xml
...或者,用空字符串替换那些文本节点的内容:
xmlstarlet ed -u '//text()' -v '' <input.xml
我正在尝试使用 xmlstarlet 删除 xml 中元素的值: 我试过 xmlstarlet ed -d 命令来删除该值,但它没有用。 我还尝试使用 xmlstarlet ed -u 将值 123 替换为“”(空)。这也没有用。
有人可以帮助我如何得到这个: 输入:
<?xml version="1.0"?>
<List Name="myList">
<Dir Path="abc">123</Dir>
<Dir Path="cde">456</Dir>
<File Path="xyz">789</File>
<File Path="xxx">567</File>
</List>
输出:
<List Name="myList">
<Dir Path="abc"></Dir>
<Dir Path="cde"></Dir>
<File Path="xyz"></File>
<File Path="xxx"></File>
</List>
我想删除值“123”、“456”...
提前致谢
要删除所有文本节点,保留元素及其属性:
xmlstarlet ed -d '//text()' <input.xml
...或者,用空字符串替换那些文本节点的内容:
xmlstarlet ed -u '//text()' -v '' <input.xml