如何解决从XML中删除多个XML名称空间
我必须从XML文件中删除多个xml名称空间。由于某些要求,我们正在为每个传入消息进行追加。因此,在最终文件中,我们需要删除以下XML名称空间。 所有名称空间都相同。需要删除那些重复的名称空间。
<?xml version="1.0" encoding="UTF-8"?>
<ns0:Test xmlns:ns0="urn:demo:in:file">
<Header><Name>ABC</Name>
<no>1234</no>
<FileName>Invoice</FileName>
</Header>
<Detail>
<Id>
<Type>1</Type>
<Customerno>2</Customerno>
<Group>3</Group>
</Id>
</Detail>
</ns0:Test>
<?xml version="1.0" encoding="UTF-8"?>
<ns0:Test xmlns:ns0="urn:demo:in:file">
<Header>
<Name>DEF</Name>
<no>1235</no>
<FileName>Invoice2</FileName>
</Header>
<Detail><Id>
<Type>2</Type>
<Customerno>3</Customerno>
<Group>4</Group>
</Id>
</Detail>
</ns0:Test>
在上面的文件中,我们有2个xml命名空间,但是在输出中,它应该是一个xml命名空间,而节点应位于该命名空间下。下面是预期的输出。
<?xml version="1.0" encoding="UTF-8"?>
<ns0:Test xmlns:ns0="urn:demo:in:file">
<Header>
<Name>ABC</Name>
<no>1234</no>
<FileName>Invoice</FileName>
</Header>
<Detail>
<Id>
<Type>1</Type>
<Customerno>2</Customerno>
<Group>3</Group>
</Id>
</Detail>
<Header>
<Name>DEF</Name>
<no>1235</no>
<FileName>Invoice2</FileName>
</Header>
<Detail>
<Id>
<Type>2</Type>
<Customerno>3</Customerno>
<Group>4</Group>
</Id>
</Detail>
</ns0:Test>
请帮助我实现预期的输出。
关于, 贾纳丹
解决方法
您的问题不只是名称空间。看来您正在尝试连接XML文档。但是...
- 仅在文档开头而不是中间允许处理指令。因此,添加以该行开头的内容已经很糟糕了。 XML在每个文档中都需要一个顶级元素。如果您在该顶级元素之后添加一些内容,那将再次很糟。
因此,您需要做的是引入一个新的顶层元素,然后将所有文档的顶层元素作为子元素添加到新的顶层。只有这样,您才能考虑名称空间,并尝试使输出效率更高。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。