преобразовать XmlNode в XNode?

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


person Dave    schedule 23.10.2008    source источник


Ответы (3)


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

XmlNode myNode;
XNode translatedNode = XDocument.Parse(myNode.OuterXml);
person Chris Shaffer    schedule 23.10.2008

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

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

person RandomNickName42    schedule 06.05.2009

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

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

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

person Keith    schedule 23.10.2008
comment
Просто был какой-то старый код, который возвращает XmlNode, но я хочу запросить этот узел, который на самом деле является документом. - person Dave; 24.10.2008