2011-10-25 2 views
-1

XML을 읽는 가장 좋은 방법은 무엇입니까?xml을 읽는 가장 좋은 방법

내 XML은 처럼 내가 거기 있다면 자식 요소

<180> will be there under <A> for sure. So does the other element. 

처럼하지만 그것을 읽을 수 있다고 말할 수 없다

<A> and <B>, not sure how many will be there and I have to read the whole xml file. 

를 많이해야합니다.

LINQ 또는 XPath 또는 XMLReader를 사용해야합니까? 어느 것이 더 쉽고 쉬울까요?

 <A> 
      <180>20130218</180> ///180 is here 
      <170>5</170> 
      <220>20080210</220> 
      <730 CLID='AAA' KW='BBB' KW2='INTERNATIONAL'> 
       <731>BBB INTERNATIONAL AG</731> 
       <732>XXX</732> 
       <735>US66</735> 
       <734>YYY</734> 
      </730> 
      <300> 
       <301> 
        <320>20071100</320> 
        <310>12345</310> 
       </301> 
       <330>US</330> 
      </300> 
     </A> 
     <A>     ///180 is not here 
      <170>5</170> 
      <220>20080210</220> 
      <730 CLID='AAA' KW='BBB' KW2='WORLD'> 
       <731>BBB INTERNATIONAL AG</731> 
       <734>YYY</734> 
      </730> 
      <300> 
       <301> 
        <320>20071100</320> 
        <310>12345</310> 
       </301> 
       <330>UK</330> 
      </300> 
     </A> 
     <B> 
      <180>20130218</180> 
      <170>5</170> 
      <220>20080210</220> 
      <730 CLID='AAA' KW='BBB' KW2='INTERNATIONAL'> 
       <731>BBB INTERNATIONAL AG</731> 
       <732>XXX</732> 
       <733>JP</733> 
       <735>JP66</735> 
       <734>YYY</734> 
      </730> 
      <300> 
       <301> 
        <320>20071100</320> 
        <310>12345</310> 
       </301> 
       <330>JP</330> 
      </300> 
     </B> 
+0

당신이 사용하는 것은 달성하고자하는 것에 달려 있습니다. 단순히 내용을 읽는다면 fopen()으로도 충분합니다. – Kangkan

+4

무엇을 읽고 싶습니까? XML은 얼마나 큰가? 기억에 맞을 수 있습니까? 사용할 XML 구문 분석기는 해당 질문에 대한 응답에 따라 달라집니다. –

+1

이 XML로 무엇을해야하는지 물어볼 수 있습니까? 도메인 모델 개체로 변환 하시겠습니까? 아니면 다른 무엇입니까? A 및 B 태그를 제외하고는 요소 구조가 알려져 있습니까? 즉, <301>은 항상 <300> 아래에 있습니까? – themarcuz

답변

6

나는 LINQ 또는 XPath에 또는의 XMLReader를 사용해야합니까? 어느 것이 더 좋고 쉬울까요?

XDocument (Linq-to-XML)가 가장 쉽습니다. 그리고 아마도 당신이 원하는 것을 할 수는 있지만 원하는 결과에 대해 더 분명하게해야합니다.

XML은 150KB까지 될 수 있습니다.

전혀 문제가 없습니다. 150 MB에 도달하면 XmlReader 만 고려하십시오.

관련 문제