【发布时间】:2021-04-30 13:11:29
【问题描述】:
如何使用XSLT 删除多个特定的命名空间声明(使用无关紧要)?
输入:
<?xml version="1.0" encoding="UTF-8"?>
<ns1:Envelope xmlns:ns1="http://www.a.com" xmlns:ns2="http://www.b.com" xmlns:ns3="http://www.c.com" xmlns:ns4="http://www.d.com" xmlns:ns5="http://www.e.com">
<ns1:Body>
<ns2:a>
<ns2:b>data1</ns2:b>
<ns2:c>data2</ns2:c>
</ns2:a>
</ns1:Body>
</ns1:Envelope>
需要删除:ns4、ns5。
所需输出:
<?xml version="1.0" encoding="UTF-8"?>
<ns1:Envelope xmlns:ns1="http://www.a.com" xmlns:ns2="http://www.b.com" xmlns:ns3="http://www.c.com">
<ns1:Body>
<ns2:a>
<ns2:b>data1</ns2:b>
<ns2:c>data2</ns2:c>
</ns2:a>
</ns1:Body>
</ns1:Envelope>
提前谢谢!
更新:
- 需要根据声明的命名空间(例如
"http://www.d.com")删除命名空间。 - XSLT v.1.0。
【问题讨论】:
-
XSLT 1、2 还是 3?
ns4或ns5只是一个前缀,您要根据使用的前缀删除声明吗?或基于声明的命名空间,例如http://example.com? -
@Martin Honnenthanx,更新问题。
-
@Siebe Jongebloed 不,我看到了。在我的情况下,未使用的物品可能会保留。
标签: xml xslt xml-namespaces