我在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
...
关于如何做到这一点的任何想法?
答案 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
它会抱怨is
和dg
是未定义的命名空间。 XML不需要使用命名空间,并且在不使用命名空间时,XML验证器应该接受元素名称中的冒号。但是,我不知道会让xmlstarlet对此抱怨的旗帜。