格式化XML数据以进行测试

时间:2014-02-07 20:28:19

标签: xml

我在XML文件中有数据需要以某种方式提取和显示,因此我可以运行一些测试。

XML中的数据如下所示

<is:Person>
    <is:PersonId/>
    <is:NationalIdentificationNumber/>
    <is:Name>
        <dg:Title/>

我需要的是像这样出现

is:Person/is:PersonID
is:Person/is:NationalIdentificationNumber
is:Person/is:Name/
is:Person/is:Name/dg:Title

...

关于如何做到这一点的任何想法?

1 个答案:

答案 0 :(得分:0)

您问题中的数据不是格式良好的XML。它没有结束标签。

添加结束标记后,您可以使用xmlstarlet获取结构:

$ xmlstarlet el [input file]

输出几乎与您在问题中显示的内容相同:

is:Person
is:Person/is:PersonId
is:Person/is:NationalIdentificationNumber
is:Person/is:Name
is:Person/is:Name/dg:Title

它会抱怨isdg是未定义的命名空间。 XML不需要使用命名空间,并且在不使用命名空间时,XML验证器应该接受元素名称中的冒号。但是,我不知道会让xmlstarlet对此抱怨的旗帜。