2011-10-25 85 views
-1

閱讀XML的最佳方式是什麼?閱讀xml的最佳方式

我的XML就是這樣 我會有很多的

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

我不能說子元素像

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

但是,如果它的存在,我要讀它。

我應該使用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可以高達150 KB。

沒問題。當您達到150 MB時纔開始考慮XmlReader。