2014-10-28 109 views
0

我試圖從XML文件讀取。 我成功讀取一個int。但是當我想將其轉換爲字符串時不起作用。我想得到一些幫助。XML文件讀取字符串失敗

XML:

<Data> 
    <ServerClient>1</ServerClient> 
    <ClientIP>127.0.0.1</ClientIP> 
    <ClientPort>11000</ClientPort> 
</Data> 

功能的getType良好讀取XML文件中的int值。

private XmlDocument doc; 

public int getType() 
{ 
    try 
    { 
     // Open the file again 
     doc.Load("ServerClientXML.xml"); 

     // Read port 
     XmlNode node = doc.SelectSingleNode("/Data/ServerClient"); 

     return int.Parse(node.InnerText); // 0 = Server, 1 = Client 
    } 
    catch 
    { 
     return -1; 
    } 
} 

public string getIP() 
{ 
    string ip; 
    XmlNode node; 

    try 
    { 
     // Open the file again 
     doc.Load("ServerClientXML.xml"); 

     int Type = getType(); 
     if (Type == 1) // Client type 
     { 
      // Read IP 
      node = doc.SelectSingleNode("/Data/ServerClient/ClientIP"); 
      ip = doc.InnerXml; 

     } 
     else // Server Type 
     { 
      // Read IP 
      node = doc.SelectSingleNode("/Data/ServerClient/ServerIP"); 
      ip = doc.InnerXml; 
     } 

     return ip; 
    } 
    catch 
    { 
     return null; 
    } 
} 

我曾嘗試喜歡的getType但沒有成功:

return node.InnerText.toString(); // 0 = Server, 1 = Client 
+0

您在第二個函數中顯示的XPath與您的XML示例不匹配。 – 2014-10-28 22:29:01

+1

不要這樣做:'catch {return something}'因爲你不知道你的例程是否成功。如果你沒有把它們扔掉,例外會告訴你什麼是錯的。 – 2014-10-28 22:29:41

+0

您也離開了實例化'doc'的部分。 – 2014-10-28 23:16:17

回答

1

您的XPath不匹配提供的XML。它應該是/Data/ClientIP/Data/ServerIP

+1

我的支票已經解決了問題,在計算機上12小時後我失去了我的注意力。不管怎麼說,還是要謝謝你。 :) – RonYamin 2014-10-28 22:38:09