如果我有一个xmlreader实例,我如何使用它来读取当前节点并以xmlElement实例结束?
答案 0 :(得分:8)
未经过测试,但通过XmlDocument
:
XmlDocument doc = new XmlDocument();
doc.Load(reader);
XmlElement el = doc.DocumentElement;
或者(来自cmoment),例如:
doc.LoadXml(reader.ReadOuterXml());
但实际上我并不喜欢它......它没有任何理由强制额外的xml-parse步骤(更昂贵的CPU操作之一)。如果原作是毛躁的,那么也许可以考虑一个子读者:
using (XmlReader subReader = reader.ReadSubtree())
{
XmlDocument doc = new XmlDocument();
doc.Load(subReader);
XmlElement el = doc.DocumentElement;
}
答案 1 :(得分:2)
假设你有XmlDocument,你需要附加新创建的XmlElement:
XmlElement myElement;
myXmlReader.Read();
if (myXmlReader.NodeType == XmlNodeType.Element)
{
myElement = doc.CreateElement(myXmlReader.Name);
myElement.InnerXml = myXmlReader.InnerXml;
}
来自docs:不要直接实例化XmlElement;相反,使用CreateElement等方法。