我觉得这应该比它更容易,但我似乎无法直截了当。这是我的测试用例。
Imports <xmlns="http://www.w3.org/2000/svg">
Public Sub Test()
Dim doc As XDocument = XDocument.Load("input.svg")
Dim svg As XElement = doc.Elements.First
svg.Add(<text>
<tspan>Some Text</tspan>
</text>)
svg.Save("output.svg")
End Sub
输入xml
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg">
<g id="layer4" >
</g>
</svg>
我得到的是以下输出,
<?xml version="1.0" encoding="utf-8"?>
<svg xmlns="http://www.w3.org/2000/svg">
<g id="layer4"></g>
<text xmlns="http://www.w3.org/2000/svg">
<tspan>Some Text</tspan>
</text>
</svg>
为什么新的文本元素没有看到它使用默认命名空间并且不使用xmlns?如果我不使用Imports <xmlns="http://www.w3.org/2000/svg">
语句,我会在文本元素上获得一个空名称空间xmlns=""
。
答案 0 :(得分:1)
在.NET的最新版本(4.5,也许是4.0)中,您可以使用
进行保存doc.Save("output.svg", SaveOptions.OmitDuplicatNamespaces)