37 votes

Quelle est la différence entre XElement.Load et XDocument.Load ?

Comme indiqué ci-dessus, quelle est la différence entre XElement.Load y XDocument.Load ? Ils semblent tous deux charger un fichier XML.

34voto

Andrew Hare Points 159332

La différence est qu'un XElement représente un fragment XML tandis que le type XDocument représente un document XML entier avec toutes les méta-données associées.

Cela dit, dans la plupart des cas simples, vous pouvez les utiliser de manière interchangeable.

Il est important de comprendre les différences subtiles entre ces deux types de requêtes. Pour plus d'informations à ce sujet, je vous recommande de lire le document suivant Interrogation d'un XDocument vs. Interrogation d'un XElement :

Lorsque vous chargez un document via XDocument.Load vous remarquerez que vous devez écrire les requêtes de manière légèrement différente que lorsque vous chargez via XElement.Load .

0 votes

Il est également conseillé d'utiliser XDocument si vous souhaitez envoyer le XML généré à un service Web via le Web. Mais vous avez demandé .Load donc ce n'est probablement pas votre cas.

10voto

Justin Niessner Points 144953

Il n'y a pas beaucoup de scénarios qui vous obligent à créer un XDocument. Au lieu de cela, vous pouvez généralement créer vos arbres XML avec un noeud racine XElement. À moins que vous n'ayez une exigence spécifique de créer un document (par exemple parce que vous devez créer des instructions de traitement instructions de traitement et des commentaires au niveau niveau supérieur, ou parce que vous devez prendre en charge des ), il est souvent plus pratique de d'utiliser XElement comme nœud racine.

Directement de Contenu valide des objets XElement et XDocument . En ce qui concerne les méthodes de chargement... elles chargent toutes deux du contenu dans leurs objets respectifs.

0 votes

J'ai eu besoin de charger/modifier/sauvegarder certains formulaires InfoPath qui font un usage intensif des instructions de traitement. L'utilisation de XElement donnait des résultats confus jusqu'à ce que je trouve cet article et que je passe à XDocument. Alors... merci !

1voto

Ashwin Divekar Points 11

Il y a une différence lors du chargement des commentaires, ils ne seront pas chargés dans le cas de XElement.Load(). Alors que le XDocument.Load() obtiendra également le commentaire.

Par conséquent, lorsque nous travaillons avec Xlinq, nous devons utiliser XDocument.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X