Кто-нибудь знает, как преобразовать System.Xml.XmlNode в System.Xml.Linq.XNode?
преобразовать XmlNode в XNode?
Ответы (3)
Я никогда не пробовал, но моей первой мыслью было бы что-то вроде:
XmlNode myNode;
XNode translatedNode = XDocument.Parse(myNode.OuterXml);
Блог Эрика Уайта — это место, где можно найти крутые преобразования XML/XLINQ и тому подобное. Я знаю, что этот вопрос предшествует публикации, но я нашел его, просматривая некоторые другие вопросы, так что, возможно, люди все еще сталкиваются с этим изрядно. В его блоге много оптимизированного LINQ, например, я подозреваю, что вызов .Parse() для исходного ответа неоптимален, на самом деле я знаю, что это не так.
Parse потребует, чтобы XML загружался за один раз. Эрик использовал методы расширения, которые обрабатывают преобразование XML с помощью XmlReader/Writer. Эти методы могут передавать входные данные, поэтому, если ваш XML имеет значительный размер, вы должны использовать их.
Я не думаю, что есть, но зачем вам это нужно? Каждый из них является самым нижним «листом» структуры Xml для различных способов чтения документа.
Если вы используете Linq to Xml и XDocument, у вас будет весь синтаксис в стиле linq и новые функции, но на самом деле все, что нужно для выбора узла.
Если у вас есть элемент, с которым вы имеете дело, зачем вам переключаться?