none
如何取得xml內的資料到我的程式上? RRS feed

  • 問題

  • http://www.xxx.com/news.xml

    Code Snippet

    <?xml version="1.0" encoding="big5" ?>
    <bidask>
         <Bidbestprice>120.3</Bidbestprice>
                  <BidShare1>4.0</BidShare1>
                 <BidVol1>44400</BidVol1>
                  <BidShare2>35.0</BidShare2>
                 <BidVol2>149200</BidVol2>
                 <BidShare3>25.0</BidShare3>
                 <BidVol3>101200</BidVol3>
                  <BidShare4>120.0</BidShare4>
                 <BidVol4>802000</BidVol4>
                  <BidShare5>8.0</BidShare5>
                 <BidVol5>64800</BidVol5>
          <Askbestprice>120.4</Askbestprice>
                  <AskShare1>1.0</AskShare1>
                 <AskVol1>62400</AskVol1>
                  <AskShare2>3.0</AskShare2>
                 <AskVol2>18800</AskVol2>
                 <AskShare3>6.0</AskShare3>
                 <AskVol3>27600</AskVol3>
                  <AskShare4>2.0</AskShare4>
                 <AskVol4>49200</AskVol4>
                  <AskShare5>3.0</AskShare5>
                 <AskVol5>103200</AskVol5>
       </bidask>

     

     

     

    我想把xml內的各項資料取到我的程式上, 我應如何做?

    2008年3月20日 上午 04:34

解答

  • 好一個即是說,還要人家問你才要講清楚。

     

    Code Snippet

    using System.Xml;

     

    XmlDocument doc = new XmlDocument();

    doc.Load(http://www.xxx.com/news.xml);

     

    <?xml version="1.0" encoding="big5" ?>
    <bidask>
         <Bidbestprice>120.3</Bidbestprice> // doc.DocumentElement.ChildNodes[0].InnerText
                  <BidShare1>4.0</BidShare1>  // doc.DocumentElement.ChildNodes[0].ChildNodes[0].InnerText
                 <BidVol1>44400</BidVol1>      // doc.DocumentElement.ChildNodes[0].ChildNodes[1].InnerText
                  <BidShare2>35.0</BidShare2> // doc.DocumentElement.ChildNodes[0].ChildNodes[2].InnerText
                 <BidVol2>149200</BidVol2>  // ...
                 <BidShare3>25.0</BidShare3> // ...
                 <BidVol3>101200</BidVol3>  // ...
                  <BidShare4>120.0</BidShare4> // ..
                 <BidVol4>802000</BidVol4> // ...
                  <BidShare5>8.0</BidShare5>  // ...
                 <BidVol5>64800</BidVol5> // ...
          <Askbestprice>120.4</Askbestprice> // doc.DocumentElement.ChildNodes[1].InnerText
                  <AskShare1>1.0</AskShare1> // doc.DocumentElement.ChildNodes[1].ChildNodes[0].InnerText
                 <AskVol1>62400</AskVol1>   //  doc.DocumentElement.ChildNodes[1].ChildNodes[1].InnerText
                  <AskShare2>3.0</AskShare2> // doc.DocumentElement.ChildNodes[1].ChildNodes[2].InnerText
                 <AskVol2>18800</AskVol2> // ..
                 <AskShare3>6.0</AskShare3> // ..
                 <AskVol3>27600</AskVol3> // ..
                  <AskShare4>2.0</AskShare4>  // ..
                 <AskVol4>49200</AskVol4> // ..
                  <AskShare5>3.0</AskShare5>  // ..
                 <AskVol5>103200</AskVol5> // ..
       </bidask>

     

     

     

     

     

     

    2008年3月20日 上午 07:08
    版主

所有回覆

  • 最簡單的方式使用 WebClient 即可...

    private void button1_Click(object sender, EventArgs e)
    {
        WebClient wc = new WebClient();
        wc.DownloadFile("http://www.xxx.com/news.xml", "news.xml");
    }

    2008年3月20日 上午 05:30
  • 沒頭沒尾~ 也不知道是不是要問 xmlDocument 這個物件~

    2008年3月20日 上午 05:39
    版主
  •  璉璉 寫信:

    沒頭沒尾~ 也不知道是不是要問 xmlDocument 這個物件~

    即是說, 我想要的資料在http://www.xxx.com/news.xml內, 而news.xml的資料是即時更新的, 我想把news.xml內的資料顯示在我的程式內..

     

    比如說xml內有<name>test</name>, 我想在我的程式顯示出<name>test</name>中的值('test'), 而這個值是即時更新的

    2008年3月20日 上午 06:28
  • 好一個即是說,還要人家問你才要講清楚。

     

    Code Snippet

    using System.Xml;

     

    XmlDocument doc = new XmlDocument();

    doc.Load(http://www.xxx.com/news.xml);

     

    <?xml version="1.0" encoding="big5" ?>
    <bidask>
         <Bidbestprice>120.3</Bidbestprice> // doc.DocumentElement.ChildNodes[0].InnerText
                  <BidShare1>4.0</BidShare1>  // doc.DocumentElement.ChildNodes[0].ChildNodes[0].InnerText
                 <BidVol1>44400</BidVol1>      // doc.DocumentElement.ChildNodes[0].ChildNodes[1].InnerText
                  <BidShare2>35.0</BidShare2> // doc.DocumentElement.ChildNodes[0].ChildNodes[2].InnerText
                 <BidVol2>149200</BidVol2>  // ...
                 <BidShare3>25.0</BidShare3> // ...
                 <BidVol3>101200</BidVol3>  // ...
                  <BidShare4>120.0</BidShare4> // ..
                 <BidVol4>802000</BidVol4> // ...
                  <BidShare5>8.0</BidShare5>  // ...
                 <BidVol5>64800</BidVol5> // ...
          <Askbestprice>120.4</Askbestprice> // doc.DocumentElement.ChildNodes[1].InnerText
                  <AskShare1>1.0</AskShare1> // doc.DocumentElement.ChildNodes[1].ChildNodes[0].InnerText
                 <AskVol1>62400</AskVol1>   //  doc.DocumentElement.ChildNodes[1].ChildNodes[1].InnerText
                  <AskShare2>3.0</AskShare2> // doc.DocumentElement.ChildNodes[1].ChildNodes[2].InnerText
                 <AskVol2>18800</AskVol2> // ..
                 <AskShare3>6.0</AskShare3> // ..
                 <AskVol3>27600</AskVol3> // ..
                  <AskShare4>2.0</AskShare4>  // ..
                 <AskVol4>49200</AskVol4> // ..
                  <AskShare5>3.0</AskShare5>  // ..
                 <AskVol5>103200</AskVol5> // ..
       </bidask>

     

     

     

     

     

     

    2008年3月20日 上午 07:08
    版主
  • 所以才會寫到 xmlDocument ,用 xmlDocument 就可以直接把整個 xml 檔讀近來,再依據結構取得你要的屬性。

    例如:

    xmlDoc(xxx)(xxx)("name")

    2008年3月20日 上午 07:08
    版主