[英]Extract specific nodes from XML
我有一個如下的XML文件:
<catalog>
<cd Id="2">
<title>Title2</title>
<artist>artist2</artist>
<company>
<companyName>Company2</companyName>
<companyAddress1>street1</companyAddress1>
<companyAddress2>street2</companyAddress2>
<companyCity>City2</companyCity>
</company>
<price>12.90</price>
<year>1987</year>
</cd>
<cd Id="3">
<title>Title3</title>
<artist>artist3</artist>
<company>
<companyName>Company3</companyName>
<companyAddress1>street1</companyAddress1>
<companyAddress2>street2</companyAddress2>
<companyCity>City3</companyCity>
</company>
<price>9.90</price>
<year>1984</year>
</cd>
</catalog>
我想根據節點中的Id屬性過濾此源XML,並創建一個新的XML文件,例如:
<catalog>
<cd Id="2">
<title>Title2</title>
<artist>artist2</artist>
<company>
<companyName>Company2</companyName>
</company>
<price>12.90</price>
</cd>
<cd Id="3">
<title>Title3</title>
<artist>artist3</artist>
<company>
<companyName>Company3</companyName>
</company>
<price>9.90</price>
</cd>
</catalog>
源文件太大,因此我想我需要使用XmlReader。 但是我無法找到一種簡單的方法來基於Id進行過濾並提取所需的節點。 任何幫助表示贊賞。
謝謝
我認為這正是您想要的:
XDocument xdoc = XDocument.Load("File path");//Load XML file
//Delete all elements in company except companyName
xdoc.Descendants("company").Elements().Where(x => x.Name != "companyName").Remove();
//Delete year
xdoc.Descendants("year").Remove();
xdoc.Save("File path");//Overwrite the XML file with the new result
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.