XML代码如下:<?xml version="1.0" encoding="utf-8"?>
<xml>
<0>12345678901</0>
</xml>C#代码如下: 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之间的内容吗?

解决方案 »

  1.   

    本帖最后由 net_lover 于 2012-05-18 13:02:57 编辑
      

  2.   

    本来是这样写的,但是无法读取,提示说是名称不能为0.后来把标签名改为phone试了一下,可以获取到。可是这个标签是PHP自己生成的,就是按<0><1><2>这样的名字,所以我不想改标签名。
      

  3.   

    本帖最后由 net_lover 于 2012-05-18 11:45:40 编辑
      

  4.   


            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;
            }