ノードの一部を除いて大きなxmlを書き直したいと思います。 system.xml.xmlreaderを使用して、XMLファイル(100 MBのMBを読み込み、メモリにすべて読み込めません)を1行ずつ読み込もうとしています。その一部を読み込み、 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 /どのように、読み--XMLファイルごとの使用-のXMLReader・イン・C-シャープになりました更新 – jdweng