2011-07-30 5 views
1
내가 웹에서 같은 파일을 읽고 있어요

: 내가 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 요소를 제공합니다.

하지만 주제는 아닙니다.