2008-10-23 10 views

Répondre

9

Je ne l'ai jamais essayé, mais ma première pensée serait quelque chose comme:

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

Je ne pense pas qu'il existe, mais pourquoi auriez-vous besoin? Chacun est le 'leaf' le plus bas de la structure Xml pour différentes façons de lire le document. Si vous utilisez Linq to Xml et XDocument, vous aurez toute la syntaxe linq-style et les nouvelles fonctionnalités, mais tout ce qui concerne la sélection d'un nœud.

Une fois que vous avez l'élément avec lequel vous faites affaire, pourquoi devez-vous changer?

+0

Juste eu un ancien code qui retourne un XmlNode mais je veux interroger ce nœud, qui semble être en fait un document. – Dave

10

Eric White's blog est l'endroit idéal pour les conversions XML/XLINQ frais et autres. Je sais que cette question est antérieure à la publication, mais je l'ai trouvée en examinant un autre Q, alors peut-être que les gens en rencontrent encore un bon nombre. Son blog a beaucoup de LINQ optimisé, comme je le soupçonne l'appel .Parse() pour la réponse est non-optimale, bien en fait, je sais que ce n'est pas.

Parse va exiger que le XML soit chargé en une seule fois, Eric a utilisé des méthodes d'extension qui traitent la conversion XML avec XmlReader/Writer. Ces méthodes sont capables de diffuser l'entrée, donc si votre XML est de toute taille substantielle, vous devez les utiliser.