c# - ejemplo - ¿Cómo creo un xmlElement del nodo actual de un xmlReader?
xmldocument c# ejemplo (2)
Suponiendo que tiene XmlDocument, donde necesita adjuntar el XmlElement recién creado:
XmlElement myElement;
myXmlReader.Read();
if (myXmlReader.NodeType == XmlNodeType.Element)
{
myElement = doc.CreateElement(myXmlReader.Name);
myElement.InnerXml = myXmlReader.InnerXml;
}
De los documentos : No instanciar un XmlElement directamente; en su lugar, use métodos como CreateElement.
Si tengo una instancia xmlreader, ¿cómo puedo usarla para leer su nodo actual y terminar con una instancia xmlElement?
No probado, pero qué tal a través de un XmlDocument
:
XmlDocument doc = new XmlDocument();
doc.Load(reader);
XmlElement el = doc.DocumentElement;
Alternativamente (desde el minuto), algo como:
doc.LoadXml(reader.ReadOuterXml());
Pero en realidad no soy un fanático de eso ... fuerza un paso adicional de xml-parse (una de las operaciones más costosas de CPU) sin una buena razón. Si el original está siendo impreciso, entonces tal vez considere un sub-lector:
using (XmlReader subReader = reader.ReadSubtree())
{
XmlDocument doc = new XmlDocument();
doc.Load(subReader);
XmlElement el = doc.DocumentElement;
}