在XML文件中添加元素而没有语法错误

时间:2016-02-08 22:30:27

标签: xml bash shell awk sed

我有一个xml文件,如下所示

<Rows>
    <row>
        <name>peter</name>
        <id>345</id>
    </row>
    <row>
        <name>matt</name>
        <id>567</id>
    </row>
</Rows>

i have achieved adding a sub element to this file like below:


<Rows>
    <row>
        <name>peter</name>
        <id>345</id>
    </row>
    <row>
        <name>matt</name>
        <id>567</id>
    </row>
<row>
<name>mano</name>
<id>897</id>
</row>
</Rows>

问题是添加的元素与其他元素并不完全同步。我期待与其他人相同的语法(对齐)

代码试过:

element="\t<row>\n\t <name>NewName</name>\n\t <id>NewID</id>\n\t</row>"
C=$(echo $element | sed 's/\//\\\//g')
echo "after C"
sed "/<\/rows>/ s/.*/${C}\n&/" filename

请协助。

1 个答案:

答案 0 :(得分:0)

最简单的答案可能是插入没有缩进的记录,然后使用 xmllint --format 来清理事实。建议的解决方案还可以提供对您非常有用的错误检查。

Linux / Unix Command: xmllint