¿Cómo puedo agregar un documento XML a un nodo xml en C#?¿Agregar un documento xml a un nodo xml en C#?
Respuesta
Un XmlDocument
es básicamente un XmlNode
, por lo que puede añadir al igual que lo haría para cualquier otra XmlNode
. Sin embargo, la diferencia surge del hecho de que esteXmlNode
no pertenece al documento de destino, por lo tanto, deberá utilizar el método ImportNode y luego realizar el apéndice.
// xImportDoc is the XmlDocument to be imported.
// xTargetNode is the XmlNode into which the import is to be done.
XmlNode xChildNode = xSrcNode.ImportNode(xImportDoc, true);
xTargetNode.AppendChild(xChildNode);
Tal como esto:
XmlNode node = ...... // belongs to targetDoc (XmlDocument)
node.AppendChild(targetDoc.ImportNode(xmlDoc.DocumentElement));
Marc
yo sepa, se le requiere a la importación ** * un nodo si no pertenece a la corriente antes de XmlDocument puedes agregarlo Ver mi respuesta – Cerebrus
Sí, parece que necesita llamar a ImportNode de hecho, pero que * creará * una copia del documento Xml ..... –
Sí:
XmlNode imported = targetNode.OwnerDocument.ImportNode(otherDocument.DocumentElement, true);
targetNode.AppendChild(imported);
Creo que esto crea un clon de su documento sin embargo.
Una vez que tenga el nodo raíz del documento XML en cuestión, puede agregarlo como un nodo secundario del nodo en cuestión. ¿Tiene sentido?
Digamos que usted tiene la construcción siguiente:
La siguiente estructura se almacena en un XmlElement llamado XmlElement:
</root>
y la siguiente estructura se almacena en un FooNode objeto XmlNode llamado ;
<foo>
<bar>This is a test</bar>
<baz>And this is another test</baz>
</foo>
Luego de hacer lo siguiente:
XmlNode node = doc.ImportNode(FooNode.SelectSingleNode("foo"), true);
xmlElement.AppendChild(node);
espero que ayude a alguien
- 1. Agregar atributos a un nodo XML
- 2. C#: Modificar un nodo XML
- 3. Convirtiendo un documento XML a un diccionario
- 4. Agregar espacio de nombres a un documento XML ya creado
- 5. necesito agregar comentarios en un documento xml existente
- 6. Cómo añadir un nuevo nodo a XML
- 7. C# Nodo XML de Foreach
- 8. Cambiar un valor de nodo XML
- 9. Cómo convertir un nodo XML a una estructura C++?
- 10. XML: para adjuntar documento xml en el nodo de otro documento
- 11. La adición de un prefijo a un nodo XML
- 12. ¿Cómo se insertan XML en un nodo XML existente
- 13. Serializar en un fragmento XML - no Documento XML
- 14. ¿Cómo recorro un nodo XML en JavaScript?
- 15. XML IDREF ¿otro documento XML?
- 16. eliminando un nodo específico en xml
- 17. Usando XPath para analizar un documento XML
- 18. Linq a XML: elimine un nodo y agregue un nuevo nodo en el mismo lugar
- 19. Incrustar un documento xml dentro de una cadena xml
- 20. Cómo deserializar solo parte de un documento XML en C#
- 21. ¿Cómo crear un documento XML utilizando XmlDocument?
- 22. Generar un hash de documento XML en C#
- 23. ¿Cómo valido un documento XML contra una DTD en C#?
- 24. Agregar VideoView a un diseño XML
- 25. Documento XML de análisis en C#
- 26. Reemplazar el texto interno de un nodo/elemento Xml
- 27. ¿cómo hacer para copiar el nodo de un documento xml a otro?
- 28. En C#, ¿hay alguna manera de agregar un nodo XML a un archivo en el disco SIN cargarlo primero?
- 29. ¿Qué es un infoset XML y de qué forma es diferente a un documento XML?
- 30. cadena de análisis XML a un documento XML falla si la cadena comienza con <?xml... ?> sección
ah sí, pero ¿qué es xSrcNode? ¿Por qué aparece el mensaje de error? No se pueden importar nodos de tipo 'Documento'. ¿Qué tipo es xTargetNode? – fijiaaron
@fijiaaron Debe seleccionar el elemento raíz del documento: 'XmlNode xChildNode = xSrcNode.ImportNode (xImportDoc.DocumentElement, true);' – nmat
Si su XmlDoc está actualmente escrito como un XmlNode, o si está tratando de importar un XmlNode, en su lugar puede hacer 'XmlNode xChildNode = xSrcNode.ImportNode (xImportDoc.OwnerDocument.DocumentElement, true);' –