【发布时间】:2014-10-28 22:24:18
【问题描述】:
我正在尝试从 XML 文件中读取。 我成功读取了一个 int。但是当我想将它转换为字符串时它不起作用。我想得到一些帮助。
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
【问题讨论】:
-
您在第二个函数中显示的 XPath 与您的 XML 示例不匹配。
-
不要这样做:
catch { return something },因为你不知道你的例程是否成功。如果你不把它们扔掉,异常会告诉你出了什么问题。 -
您还省略了实例化
doc的部分。