I am working with SVG file, that are same of XML. I need to replace InnerText of some elements with a href new element with its InnerText
An example of my element is
<text xmlns="http://www.w3.org/2000/svg" xml:space="preserve" fill="#ff0000" stroke-width="0" x="239.61" y="74.89" font-size="3.37" opacity="1.00" font-family="Arial Narrow">3070119100</text>
I need to replace 3070119100 InnerText to
<a link:href="http://www.google.it">3070119100</a>
I suppose I need to add a child with as InnerText the previous value.
I would like to work with LINQ XDocument but is appreciate also code with XMLDocument.
WHAT I AM ABLE TO DO: I was able working with XMLDocument to add child but not to clear innerText text element:
XmlDocument doc = new XmlDocument();
doc.Load(_SVG);
XmlNodeList elementListText = doc.GetElementsByTagName("text");
for (int i = 0; i < elementListText.Count; i++)
{
XmlElement a = doc.CreateElement("a");
a.SetAttribute("xmlns", "http://www.w3.org/2000/svg");
a.SetAttribute("xmlns:xlink", "http://www.w3.org/1999/xlink");
a.SetAttribute("xlink:href", "http://www.google.it");
a.InnerText = elementListText[i].InnerText;
elementListText[i].AppendChild(a);
}
doc.Save(_SVG_TEXT);
In this way I got value twice, one not linked (previous) and one linked (href value), but I am not able to clear text InnerText.
Thanks!
Following uses Xml Linq