【发布时间】:2020-12-03 01:17:53
【问题描述】:
我必须从 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,XSLT 无法处理。
-
也许你正在搜索这个:exclude-result-prefixes="#all"
-
我想去掉xml命名空间的前缀。
标签: xml xslt xml-parsing xslt-1.0 xslt-2.0