2009-06-24 11 views
0
<?xml version="1.0" encoding="utf-8" ?> 
<root> 
    <MyData> 
    <MyField>SomeValueHere1</MyField> 
    <MyComplexData> 
     <MyComplexDataField1 property="1"></MyComplexDataField1> 
     <MyComplexDataField2 someproperty"value1"> value1 </MyComplexDataField1> 
    </MyComplexData> 
    </MyData> 
    <MyData> 
    <MyField>SomeValueHere11</MyField> 
    <MyComplexData> 
     <MyComplexDataField1 property="4"></MyComplexDataField1> 
     <MyComplexDataField2 someproperty="value1"> value2 </MyComplexDataField1> 
     </MyComplexData> 
    </MyData> 
    <MyData> 
    <MyField>SomeValueHere13</MyField> 
    <MyComplexData> 
     <MyComplexDataField1 property="5"></MyComplexDataField1> 
     <MyComplexDataField2 someproperty="value1"> value </MyComplexDataField1> 
    </MyComplexData> 
    </MyData> 
    . 
    . 
    . 
    . 
</root> 

(のMyDataオブジェクトはシリアライズされたと述べたXMLNodeにデシリアライズすることができることを仮定して)XMLファイルの解釈および操作

すべてSystem.XmlのAPIを(Sは何)私は調べる必要がありますか? - .NetとC#

私を案内してください。

+0

ありがとうございました。スレッドを投稿した後にxmlコンテンツをフォーマットするのに苦労しました – 123Developer

答えて

0

これは、System.XmlのXmlDocumentを使用して、.NET 2.0の処理方法です。

XmlDocument xdoc = new XmlDocument(); 

xdoc.Load('(your file name)'); 

XmlNodeList myDataList = xdoc.SelectNodes('//MyData'); 

foreach(XmlNode dataNode in myDataList) 
{ 
    // do whatever oyu need to do with your myData nodes 
} 

MSDN documentation on the XmlDocumentクラスを確認してください。これは、XML文書をどのように処理するかのアイデアを与えるはずです。

XML文書アプローチは、ドキュメント全体を一度にメモリにロードし、ドキュメント内をナビゲートして操作できるため、中小サイズのドキュメント(数MB未満)に最適です。

.NET 3.5以降では、XDocumentを使用して新しい「LINQ to XML」アプローチが得られます。MSDN documentation on it hereをチェックしてください。

マルク・

0

あなたはXMLシリアル化を使用する場合は、あなたがそのようなことを宣言できます:

次のコードを使用して、のMyDataオブジェクトを通じて直列化復元し、ループを実行するには

public class root 
{ 

    [XmlElement("MyData")] 
    public List<MyData> Items { get, set } 

} 

public class MyData 
{ 
    ... 
} 

XmlSerializer xs = new XmlSerializer(typeof(root)); 
root r; 
using (StreamReader reader = new StreamReader(filename)) 
{ 
    r = xs.Deserialize(reader) as root; 
} 

foreach(MyData d in r.Items) 
{ 
    ... 
} 
関連する問題