2013-07-17 208 views
1

我要分析此XML,並獲得手機號碼從XML獲取價值?

<Result> 
    <text_message> 
    <id>4394</id> 
    <message>2</message> 
    <time>1373998420</time> 
    <message_phone> 
     <cellphone>09102805755</cellphone> 
    </message_phone> 
    </text_message> 
</Result> 

我的代碼是:這Rows[0][3]

int Num; 
XDocument doc = XDocument.Parse(sms.InboxCheck(authsms, "1", "1", "0")); 
doc.Save(Server.MapPath(".") + "\\xmlfolder\\xmlfile2.xml"); 
ds.ReadXml(Server.MapPath(".") + "\\xmlfolder\\xmlfile2.xml"); 
Num = Convert.ToInt32(ds.Tables["text_message"].Rows[0][3].ToString()); 
Label1.Text= Num.ToString(); 

價值0

我如何可以獲取手機號碼?

+4

您試圖將XML讀入數據集而不將其解析爲XDocument的任何特定原因? –

回答

4

如何繼續利用的XDocument類?

XDocument doc = XDocument.Load(sms.InboxCheck(authsms, "1", "1", "0")); 
var cellphone = doc.Root.Element.Elements("message_phone").First().Element.Value 
+0

XDocument沒有這樣的方法。 我的意思是RootElement方法。 – user2591714

+0

@ user2591714,我的道歉,它是'Root'。請參閱我的編輯。 –

+0

可以將第2行簡化爲'var cellphone = doc.Descendents(「cellphone」)。First()。Value' –

3

做這樣的事情

int num = int.parse(doc.Descendants.("cellphone").Single().Value); 

或更好,但

string num = doc.Descendants.("cellphone").Single().Value; 
+0

更改爲.. string num = doc.Descendants(「cellphone」)。Single()。Value; – Pankaj

0

您是否考慮過使用序列化?

您可以將您的xml映射到數據結構(類)並讀取它或/並通過XmlSerializerDataContractSerializer寫入它。

0

我會用XmlDocument來代替。

XmlDocument doc = new XmlDocument(); 
doc.Load("myFile.xml"); 
XmlNode phone = doc.SelectSingleNode("/Result/text_message/message_phone/cellphone"); 
string number = phone.InnextText;