2009-11-04 17 views

Respuesta

32

La diferencia es que un tipo XElement representa un fragmento XML, mientras que el tipo XDocument representa un documento XML completo con todos los metadatos asociados.

Dicho esto, sin embargo, para la mayoría de los casos simples, puede usarlos de manera intercambiable.

Es importante entender las diferencias sutiles en la consulta entre estos dos tipos y para más información sobre que yo recomendaría que por favor lea Querying an XDocument vs. Querying an XElement:

Cuando se carga un documento a través XDocument.Load, se quiere note que tiene que escribir las consultas ligeramente diferente que cuando carga a través de XElement.Load.

+0

por lo que respecta al rendimiento, ambos son los mismos – Ayyash

+0

Además, se sugiere XDocument si va a enviar el XML generado a través de la web a algún servicio web. Pero usted pidió '.Load', así que este no es probablemente su caso. –

9

No hay muchos escenarios que que se requieren para crear un XDocument. En su lugar, generalmente puede crear sus árboles XML con un nodo raíz XElement. A menos que tenga un requisito específico para crear un documento (por ejemplo, porque usted tiene que crear procesamiento instrucciones y comentarios en el nivel superior, o si tiene el documento de soporte tipos), a menudo es más conveniente use XElement como su nodo raíz.

Directamente desde Valid Content of XElement and XDocument Objects. En cuanto a los métodos de carga ... ambos cargan contenido en sus respectivos objetos.

+0

Necesitaba cargar/modificar/guardar algunos formularios de InfoPath y hacen un uso extensivo de las instrucciones de procesamiento. El uso de XElement estaba dando resultados confusos hasta que encontré esta publicación y cambié a XDocument. Entonces ... ¡gracias! – Jasper

1

Hay una diferencia, mientras que la carga comenta que no se cargará en caso de XElement.Load() Mientras El XDocument.Load() también tendrá Comentario

De ahí que cuando se trabaja con Xlinq que debe ir con XDocument

Cuestiones relacionadas