日期:2014-05-18  浏览次数:20801 次

C#无法读取XML里的内容
XML代码如下:
XML code

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


C#代码如下:
XML code

 String address = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + @"\phone.xml";
try
{
    XmlDocument mydom = new XmlDocument();
    mydom.Load(address);
    XmlElement root = mydom.DocumentElement;
    XmlNodeList setnode = root.GetElementsByTagName("phone");
    if (setnode.Count > 0)
    {
       return setnode[0].InnerText;
     }
}
catch (Exception ee)
{
}


因为标签名是"0",所以C#无法读取到。若不改标签名,有什么办法能让C#读取到<0></0之间的内容吗?

------解决方案--------------------
0是不能做节点名称的,本身就是错误的
mydom.Load(address);
就是错误的,你可以File.ReadAllText读取,正则分析

但是,既然你使用xml格式传输数据,就要按照xml的规则去写,要不然,麻烦多的是
------解决方案--------------------
C# code

        string strTemp = "<?xml version=\"1.0\" encoding=\"utf-8\"?><xml><0>12345678901</0><0>58467</0></xml>";

        string strReg = @"<0>([^<]+)</0>";
        Regex reg = new Regex(strReg);
        MatchCollection mc = reg.Matches(strTemp);
        foreach (Match m in mc)
        {
            string strV = m.Groups[1].Value;
        }

------解决方案--------------------
牛人呀
------解决方案--------------------
建议重写XML吧