格式化linux中没有根节点的xml文件

时间:2016-02-10 14:40:34

标签: xml linux xslt format

我尝试使用xmllint --format xmlfilename格式化下面的XML而没有运气,因为该文件没有根节点。

作为测试,我确实放了一个根节点,XML文件格式化成功。

如何在没有根节点的情况下格式化此文件?

<connection_param>
    <mlc_props_file>
        <file_full_path>./fs/public/mxres/mxmlc/mlc_properties.mxres</file_full_path>
    </mlc_props_file>
</connection_param>

<login group="CONFIG" password="00100020004100470016" user="CONFIG"/>

2 个答案:

答案 0 :(得分:2)

您可以将该内容合并到&#34;包装器中。使用external entity引用包含其内容的XML文件。

在下面的示例中,它假定您的内容是fragment.xml文件和&#34;包装器&#34; XML位于同一目录中。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE wrapper [
  <!ENTITY content SYSTEM "fragment.xml">
]>
<wrapper>
    &content;
</wrapper>

然后解析/转换&#34;包装器&#34; XML文件,用于解析/格式化内容。

答案 1 :(得分:0)

使用整洁:

echo '
<connection_param>
<mlc_props_file>
<file_full_path>./fs/public/mxres/mxmlc/mlc_properties.mxres</file_full_path>
</mlc_props_file>
</connection_param>
<login group="CONFIG" password="00100020004100470016" user="CONFIG"/>
'| tidy -xml -qi

输出:

<connection_param>
  <mlc_props_file>
    <file_full_path>
    ./fs/public/mxres/mxmlc/mlc_properties.mxres</file_full_path>
  </mlc_props_file>
</connection_param>
<login group="CONFIG" password="00100020004100470016"
user="CONFIG" />