Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为测试格式化XML数据_Xml - Fatal编程技术网

为测试格式化XML数据

为测试格式化XML数据,xml,Xml,我有一个XML文件中的数据,需要以某种方式提取和显示,以便运行一些测试 XML中的数据如下所示: <is:Person> <is:PersonId/> <is:NationalIdentificationNumber/> <is:Name> <dg:Title/> is:Person/is:PersonID is:Person/is:NationalIdentificationNumber is

我有一个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


我该怎么做?

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

添加结束标记后,可以在其上使用以获取结构:

$ 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不抱怨这一点

我不知道应该尝试在问题中显示的XML中添加什么。您应该阅读XML的基础知识,因为这确实是基础知识。请使用重定向:xmlstarlet el[输入文件]>[要存储输出的文件路径]。