Обернуть XmlNode тегами - C # - PullRequest
       12

Обернуть XmlNode тегами - C #

3 голосов
/ 17 февраля 2010

У меня есть следующий xml:

<span>sometext</span>

и я хочу обернуть этот XmlNode другим тегом:

<p><span>sometext</span></p>

Как мне этого добиться. Для разбора я использую XmlDocument (C #).

Ответы [ 3 ]

2 голосов
/ 17 ноября 2016

Приведенный выше «лучший ответ» работает, если вам все равно, что новый узел «p» заканчивается в конце родительского. Чтобы заменить его там, где он есть, используйте:

string xml = "<span>sometext</span>";
XmlDocument xDoc = new XmlDocument();
xDoc.LoadXml(xml);
// If you have XmlNode already, you can start from this point
XmlNode node = xDoc.DocumentElement;
XmlElement clone = node.Clone();
XmlNode parent = node.ParentNode;

XmlElement xElement = xDoc.CreateElement("p");
xElement.AppendChild(clone);
parent.ReplaceChild(xElement, node);
1 голос
/ 17 февраля 2010

вы можете попробовать что-то вроде этого.

string xml = "<span>sometext</span>";
XmlDocument xDoc = new XmlDocument();
xDoc.LoadXml(xml);
// If you have XmlNode already, you can start from this point
XmlNode node = xDoc.DocumentElement;
XmlNode parent = node.ParentNode;
XmlElement xElement = xDoc.CreateElement("p");
parent.RemoveChild(node);
xElement.AppendChild(node);
parent.AppendChild(xElement);
0 голосов
/ 17 февраля 2010

Вы должны использовать CreateNode (XmlNodeType.Element, "p", "") из XmlDocument.

Затем добавьте старый узел к новому с помощью метода AppendChild

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...