Если у меня есть экземпляр xmlreader, как я могу его использовать для чтения текущего node и в итоге с экземпляром xmlElement?
Как создать xmlElement из текущего node xmlReader?
Ответ 1
Не тестировалось, но как насчет с помощью XmlDocument
:
XmlDocument doc = new XmlDocument();
doc.Load(reader);
XmlElement el = doc.DocumentElement;
Альтернативно (из cmoment), что-то вроде:
doc.LoadXml(reader.ReadOuterXml());
Но на самом деле я не поклонник этого... он заставляет лишний шаг xml-parse (один из более дорогостоящих операций с ЦП) без уважительной причины. Если оригинал глючит, то, возможно, подумайте о суб-читателе:
using (XmlReader subReader = reader.ReadSubtree())
{
XmlDocument doc = new XmlDocument();
doc.Load(subReader);
XmlElement el = doc.DocumentElement;
}
Ответ 2
Предполагая, что у вас есть XmlDocument, где вам нужно прикрепить вновь созданный XmlElement:
XmlElement myElement;
myXmlReader.Read();
if (myXmlReader.NodeType == XmlNodeType.Element)
{
myElement = doc.CreateElement(myXmlReader.Name);
myElement.InnerXml = myXmlReader.InnerXml;
}
Из docs: Не создавайте экземпляр XmlElement напрямую; вместо этого используйте такие методы, как CreateElement.