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

Кто-нибудь знает верхнюю часть головы, как преобразовать System.Xml.XmlNode в System.Xml.Linq.XNode?

Ответ 1

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

XmlNode myNode;
XNode translatedNode = XDocument.Parse(myNode.OuterXml);

Ответ 2

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

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

Ответ 3

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

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

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