这些是SVG元素,并且SVG文档的提供者添加了所有类型的扩展,我们不能使用和不需要。所以我想删除这些扩展属性。XSLT复制元素属性,除非属性位于给定名称空间中
我基本上使用身份变换。我想这个元素:
<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>
如果你使用的是身份转换,你只需要为像'@i:*'这样的模式添加一个空的规则(当然你需要一个适当的命名空间声明) – 2011-03-08 20:53:04
好问题,+ 1。查看我的答案,获得完整,简短和简单的解决方案。 :) – 2011-03-08 21:04:19
@Alejandro:是的,但这不会从元素中删除不需要的名称空间节点。我的解决方案删除这个不需要的名称空间节点 – 2011-03-08 21:05:15