Я хотел бы переписать большой xml без некоторых его узлов. Я пытаюсь прочитать XML-файл (100 мс MB, не могу прочитать все это в памяти) по строкам, используя system.xml.xmlreader - изо всех сил пытаюсь найти способ прочитать его части, записать их на отдельный xDocument, а затем сохраните этот xDocument на диске.переписывание больших файлов XML - исключая определенный узел
Что я думал что-то вроде:
using (XmlReader reader = XmlReader.Create(_xml_path))
{
using (XmlWriter writer = XmlWriter.Create(@"filteredxml.xml"))
{
reader.MoveToContent();
while (reader.Read())
{
if (reader.NodeType == XmlNodeType.Element)
{
if (reader.Name != "EL_TO_BE_REMOVED")
{
//writer.WriteNode(reader.ReadOuterXml());
}
}
}
}
}
но reader.ReadOuterXml() просто переходит к первому элементу и записывает все его потомки в файл, не давая мне фильтр для элементов Я желаю игнорировать.
Смотрите мой ответ на следующей публикации: http://stackoverflow.com/questions/34274568/how-to-read-a-xml-file-by-use-xmlreader-in-c-sharp – jdweng