Я просматриваю большой XML-документ, используя XmlReader
, и сшиваю его в гораздо меньший и более управляемый XmlDocmuent
. По пути я нахожу интересный узел, поэтому, чтобы переместить его, я делаю следующее:
targetDoc.LoadXml("<result></result>");
// Some interesting code removed
using (XmlReader r = XmlReader.Create(file))
{
while (r.Read())
{
if (r.NodeType == XmlNodeType.Element)
{
if (r.Name == match)
{
// Put the node into the target document
targetDoc.FirstChild.InnerXml = r.ReadOuterXml();
return targetDoc;
}
}
}
}
Это все хорошо, за исключением того, что я хотел бы включить узел без его потомков. Меня интересует сам узел с его атрибутами. Потомки очень крупные, громоздкие и неинтересные на данный момент. (И одновременное чтение их в память приведет к ошибкам нехватки памяти...)
Есть ли простой способ получить текст (?) найденного элемента с его атрибутами, но не его потомками, в целевой документ?
new XmlTextReader()
. Вместо этого используйтеXmlReader.Create()
. - person John Saunders   schedule 15.09.2011