конвертировать XmlNode в XNode? - PullRequest
       23

конвертировать XmlNode в XNode?

10 голосов
/ 24 октября 2008

Кто-нибудь знает, как превратить System.Xml.XmlNode в System.Xml.Linq.XNode?

Ответы [ 3 ]

12 голосов
/ 06 мая 2009

Блог Эрика Уайта - это место для классных преобразований XML / XLINQ и подобных. Я знаю этот вопрос до публикации, но я нашел его, глядя на какой-то другой вопрос, так что, возможно, люди все еще сталкиваются с этим изрядным количеством. В его блоге много оптимизированного LINQ, как я подозреваю, что вызов .Parse () для оригинального ответа неоптимален, на самом деле я знаю, что это не так.

Parse потребует, чтобы XML был загружен за один раз, Эрик использовал методы расширения, которые обрабатывают преобразование XML с помощью XmlReader / Writer. Эти методы могут передавать входные данные, поэтому, если ваш XML имеет какой-либо существенный размер, вы должны использовать его.

11 голосов
/ 24 октября 2008

Я никогда не пробовал, но моей первой мыслью было бы что-то вроде:

XmlNode myNode;
XNode translatedNode = XDocument.Parse(myNode.OuterXml);
0 голосов
/ 24 октября 2008

Я не думаю, что есть, но зачем вам это нужно? Каждый из них - это самый нижний «лист» структуры XML для разных способов чтения документа.

Если вы используете Linq to Xml и XDocument, у вас будет весь синтаксис в стиле linq и новые функциональные возможности, но на самом деле все, что касается выбора узла.

Если у вас есть элемент, с которым вы имеете дело, зачем вам переключаться?

...