如何在xml文件中拆分和添加新的行分隔符(使用linux bash)

时间:2016-01-08 10:09:22

标签: xml linux bash

我有以下xml文件。我在构建它时实际上犯了一个错误。在查询结束后我没有添加新行。我可以在linux中使用什么命令来修改它?

</query><query id="...">
        ^ split here. add new line delimiter

</query>
<query id="...">

输入

    <queries>
    <query id="LFENT_1_1">
    <name>barack obama</name>
    <docid>LFDOC1</docid>
    <type>person</type>
    </query><query id="LFENT_1_2">
    <name>obama</name>
    <docid>LFDOC1</docid>
    <type>person</type>
    </query><query id="LFENT_1_3">
    <name>american</name>
    <docid>LFDOC1</docid>
    <type>misc</type>
   </query>
   </queries>

输出

  <queries>
    <query id="LFENT_1_1">
    <name>barack obama</name>
    <docid>LFDOC1</docid>
    <type>person</type>
    </query>
    <query id="LFENT_1_2">
    <name>obama</name>
    <docid>LFDOC1</docid>
    <type>person</type>
    </query>
    <query id="LFENT_1_3">
    <name>american</name>
    <docid>LFDOC1</docid>
    <type>misc</type>
   </query>
   </queries>

谢谢。

3 个答案:

答案 0 :(得分:3)

试试这行:

xmllint --format your.xml

答案 1 :(得分:1)

仅添加换行符就像

xmllint --format file.xml > newfile.xml

但如果您想要一个非常好的格式化文件,我建议使用

<tr class="itemList" bgcolor="#A5ACB0" onclick="document.location='Details/'>

答案 2 :(得分:1)

如果您想在</query>结束标记之后使用换行符,则可以使用以下sed命令:

sed  "s/<\/query>/<\/query>\n/g" input.xml