XSLT 复制元素属性,除非属性位于给定命名空间中
这些是 SVG 元素,SVG 文档的供应商添加了各种我们无法使用、也不想要的扩展。所以我想删除这些扩展属性。
我基本上使用身份转换。我想要这个元素:
<text id="1"
i:knockout="Off"
i:objectType="pointText"
style="font-size:16;"
>Hi</text>
复制为
<text id="1" style="font-size:16;">Hi</text>
任何帮助赞赏。
编辑
不幸的是,我上面选择的例子不是真实的。这是:
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg"
xmlns:i="http://ns.adobe.com/AdobeIllustrator/10.0/"
i:viewOrigin="-39.4106 906.6265" i:rulerOrigin="0 0" i:pageBounds="0 840 592 0" >
<g i:extraneous="self">
</g>
</svg>
我想要的是:
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg"
>
<g>
</g>
</svg>
These are SVG elements, and the supplier of the SVG documents has added all kinds of extensions, that we can not use, and do not want. So I'd like these extended attributes removed.
I'm basically using the identity transform. I want this element:
<text id="1"
i:knockout="Off"
i:objectType="pointText"
style="font-size:16;"
>Hi</text>
to copy as
<text id="1" style="font-size:16;">Hi</text>
Any help appreciated.
Edit
Unfortunately, the example I chose above wasn't a real one. This one is:
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg"
xmlns:i="http://ns.adobe.com/AdobeIllustrator/10.0/"
i:viewOrigin="-39.4106 906.6265" i:rulerOrigin="0 0" i:pageBounds="0 840 592 0" >
<g i:extraneous="self">
</g>
</svg>
and what I want is:
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg"
>
<g>
</g>
</svg>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
此转换:
当应用于提供的 XML 文档时:
产生所需的正确结果:
更新:OP现在已经指定了他绑定了前缀
"i"
的确切命名空间。在这种情况下,只需将
"i:i"
替换为http://ns.adobe.com/AdobeIllustrator/10.0/
即可为我们提供新的解决方案:当应用于新提供的 XML 文档时:
再次生成所需的正确结果:
This transformation:
when applied on the provided XML document:
produces the wanted, correct result:
UPDATE: The OP now has specified the exact namespace he has the prefix
"i"
bound to.In this case a simple replace of
"i:i"
withhttp://ns.adobe.com/AdobeIllustrator/10.0/
gives us the new solution:and when applied on the newly-provided XML document:
the wanted, correct result is again produced: