これは実際よりも簡単なはずですが、まっすぐにできないようです。これが私のテストケースです。
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=""