2011-07-30 14 views
1
私は、Webからのようなファイルを読んでいる

:私は、XMLデータを読み込むための多くの方法がある参照XMLへの新しいまだXMLウェブからの読み込みと表示内容

<?xml version='1.0' encoding='UTF-8'?> 
<eveapi version="2"> 
    <currentTime>2011-07-30 16:08:53</currentTime> 
    <result> 
    <rowset name="characters" key="characterID" columns="name,characterID,corporationName,corporationID"> 
     <row name="Conqrad Echerie" characterID="91048359" corporationName="Federal Navy Academy" corporationID="1000168" /> 
    </rowset> 
    </result> 
    <cachedUntil>2011-07-30 17:05:48</cachedUntil> 
</eveapi> 

イムと、特定の方法があります私はこれをしたいと思っていますか?私がしたいのは、すべてのデータをStreamReaderにロードすることです。次にgetを使用します。セット;後でデータを引き出すには?

+0

検索またはGoogleの解析xml C# – Bitmap

答えて

1

あなたは、オブジェクトベースのアクセスをしたい場合は、ファイルの例XMLを入れて、これはあなたがのXmlSerializerで使用できるXMLに似たオブジェクトモデルですmy.csを作成します

xsd.exe my.xml 
xsd.exe my.xsd /classes 

を実行します。

var ser = new XmlSerializer(typeof(eveapi)); 
var obj = (eveapi)ser.Deserialize(source); 
0

データを簡単に使用する必要がある場合、特にXMLを初めて使用する場合は、XmlDocumentを使用してください。 は、ドキュメントをロードするには、次の

using System.Xml; 
using System.IO; 
public class someclass { 
    void somemethod() { 
     //Initiate the XmlDocument object 
     XmlDocument xdoc; 
     //To load from file 
     xdoc.Load("SomeFolder\\SomeFile.xml"); 
     //Or to load from XmlTextReader, from a file for example 
     FileStream fs = FileStream("SomeFolder\\SomeFile.xml", FileMode.Open, FileAccess.Read); 
     XmlTextReader reader = new XmlTextReader(fs); 
     xdoc.Load(reader); 
     //In fact, you can load the stream directly 
     xdoc.Load(fs); 

     //Or, you can load from a string 
     xdoc.LoadXml(@"<rootElement> 
        <element1>value1</element1> 
        <element2>value2</element2> 
        </rootElement>"); 
    } 
} 

私は個人的にXmlDocumentを見つけるはるかに容易にXMLファイルをナビゲートするために使用します。

効率的に使用するには、XPathを学ぶ必要があります。

string name = xdoc.SelectSingleNode("/eveapi/result/rowset/row").Attribute["name"].InnerText; 

またはそれ以上のXPath::

string name = xdoc.SelectSingleNode("/eveapi/result/rowset/row/@name").InnerText; 

あなたもフィルタリングすることができます。たとえば、最初のrowの名前を取得する

XmlNodeList elems = xdoc.SelectNodes("//*[@name=\"characters\"]") 

はあなたにrowset要素を提供します。

しかし、これはトピックです。