none
請問各位專家關於讀取XML NODE之值的問題 RRS feed

  • 問題


  • 各位專家我想請教一下,我在程式中建立一個button當他按下時,會將XML中
    這段<OnList>abc@gmail.com</OnList>的

    "abc@gmail.com"指派給label.text,但是在執行出現 "並未將物件參考設定為物件的執行個體" 的例外訊息,當我下中斷點時,

    發現
    label1.Text = null xdMailList 的 DocumentElement底下InnerText之值為abc@gmail.com與InnerXml 之值為

    <OnList>
    abc@gmail.com</OnList>  ,請問一下如何處理。



    XML code: (
    MailList.xml )
    Code Snippet

    <?xml version="1.0" encoding="utf-8" ?>

    <MailList>
        <OnList>abc@gmail.com</OnList>
    </MailList>


    c#
    Code Snippet

    private void button1_Click(object sender, EventArgs e)
    {
                XmlDocument xdMailList = new XmlDocument();
                xdMailList.Load(@"MailList.xml");

                // textBox_ServerName.Text = document.SelectSingleNode("/travianBOT/settinginfo").Attributes["server"].Value;

                label1.Text = xdMailList.SelectSingleNode("MailList").Attributes["OnList"].Value.ToString();

    }





    2008年9月11日 上午 03:55

解答

  • 你查詢的 XPath 不正確。

    應該是:

     

    Code Snippet

    xdMailList.SelectSingleNode("/MailList/OnList").InnerText

     

     

    不過除非你認為這個節點一定不會有 null (也就是一定找的到),否則最好加一步檢查 null 的程式。

     

    你的 XPath 在下列情況會生效:

     

    Code Snippet

    <MailList OnList="mailto:abc@gmail.com" />

     

     

    2008年9月11日 上午 04:11
    版主

所有回覆

  • 你查詢的 XPath 不正確。

    應該是:

     

    Code Snippet

    xdMailList.SelectSingleNode("/MailList/OnList").InnerText

     

     

    不過除非你認為這個節點一定不會有 null (也就是一定找的到),否則最好加一步檢查 null 的程式。

     

    你的 XPath 在下列情況會生效:

     

    Code Snippet

    <MailList OnList="mailto:abc@gmail.com" />

     

     

    2008年9月11日 上午 04:11
    版主
  • 謝謝小朱大的指教。
    2008年9月11日 上午 05:16