[英]Extracting specific nodes from an XML file
我想使用C#從下面的XML文件中讀取一節。
<?xml version="1.0" encoding="utf-8" >
<DataSet>
<xs:schema id="NewDataSet" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="Table">
<xs:complexType>
<xs:sequence>
<xs:element name="Column1" type="xs:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>
<diffgr:diffgram xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<NewDataSet>
<Table diffgr:id="Table1" msdata:rowOrder="0">
<Column1><Properties><Property>.....
我想提取Column1
節點下面的節點。 “ Properties
節點具有很多“ Property
節點,因此我希望“ Properties
節點具有所有“ Property
節點。
請讓我知道用C#獲取節點的最簡單有效的方法。
您可以使用Linq-to-XML類來解析字符串,然后使用XPath表達式來選擇所需的節點:
XElement doc = XElement.Parse(s); //where s is a string containing the XML
var properties = doc.XPathSelectElements("//Column1/Properties");
現在, properties
包含所需節點的枚舉。
如果要遍歷所有“屬性”節點,可以這樣進行:
foreach(var pp in properties)
{
foreach(var p in pp.Elements("Property"))
{
//do something
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.