2015-06-06 68 views
-3

我試圖從XML中獲取電話號碼並使用它發送短信(它的工作原理)。在C#中訪問方法?

令,它加載的電話號碼的方法:

public string LoadPhoneNumber(string phoneNum) 
    {   
     XDocument xmlDoc = XDocument.Load(Application.StartupPath + "/AppUsers/Users.xml"); 
      var items = from item in xmlDoc.Elements("Users").Elements("user") 
         where item != null &&(item.Attribute("author").Value == "Home Owner") 

         select item; 
      foreach (var item in items) 
      {     
        phoneNum=item.Element("mobile").Value.ToString();  

      } 
      return phoneNum; 
    } 

問題: 我試圖用的電話號碼從方法返回。

string phoneNum; 
sms.sendMsg(port, LoadPhoneNumber(phoneNUm), "Unknown Intruder is detected!) 
+2

「無法工作」 並沒有告訴我們什麼* *什麼問題,你所看到的。 (請注意,順便說一下,目前您只返回*最後一個*匹配的電話號碼 - 有很多更清晰的方式可以編寫該查詢...) –

+0

好,你能告訴我更簡潔的方法嗎? – ensberiyu

+0

那麼這個問題目前還不是你的問題的一部分 - 如果你能清楚地知道實際上出了什麼問題,那麼我可以寫一個有用的答案,我會在那裏包含一個更好的查詢。 (但是如果有*多個房屋所有者的價值,你想要做什麼?你肯定想要最後一個?爲什麼不是第一個?) –

回答

1

試試這個:

public string LoadPhoneNumber() 
    {   
     XDocument xmlDoc = XDocument.Load(Application.StartupPath + "/AppUsers/Users.xml"); 
      var items = from item in xmlDoc.Elements("Users").Elements("user") 
         where item != null &&(item.Attribute("author").Value == "Home Owner") 

         select item; 
      foreach (var item in items) 
      {     
        string phoneNum=item.Element("mobile").Value.ToString(); 
        return PhoneNum;  

      } 
      return LoadPhoneNumber(); 
    }