2 lilv2 lilv2 于 2015.06.02 17:23 提问

C#怎么把显示子节文本值叠加
    public static  string  ShowXml()
    {
        xmlDoc = new XmlDocument();
        xmlDoc.Load("F:\\6.4迭代一\\Virtual Exchange\\TradeCenterUI\\MailSendOut.xml"); //加载xml文件
        XmlNode xn = xmlDoc.SelectSingleNode("bookshop");

        XmlNodeList xnl = xn.ChildNodes;

        foreach (XmlNode xnf in xnl)
        {
            XmlElement xe = (XmlElement)xnf;
            Console.WriteLine(xe.GetAttribute("genre"));//显示属性值 
            Console.WriteLine(xe.GetAttribute("ISBN"));

            XmlNodeList xnf1 = xe.ChildNodes;
            foreach (XmlNode xn2 in xnf1)
            {
                Console.WriteLine(xn2.InnerText);//显示子节点点文本  
            }

        }
        return xnl.ToString();

        
    }

3个回答

caozhy
caozhy   Ds   Rxr 2015.06.02 17:29
已采纳

什么叫叠加?
string s = "";
foreach (XmlNode xnf in xnl)
{
XmlElement xe = (XmlElement)xnf;
Console.WriteLine(xe.GetAttribute("genre"));//显示属性值
Console.WriteLine(xe.GetAttribute("ISBN"));

        XmlNodeList xnf1 = xe.ChildNodes;
        foreach (XmlNode xn2 in xnf1)
        {
           s += xn2.InnerText; 
        }

    }
            这样?
bdmh
bdmh   Ds   Rxr 2015.06.02 17:29

如果是字符串连接,可以用 + 号,推荐用stringbuilder

Cassiel0
Cassiel0   2015.06.02 20:23

foreach (XmlNode xnf in xnl)
{
XmlElement xe = (XmlElement)xnf;
Console.WriteLine(xe.GetAttribute("genre"));//显示属性值
Console.WriteLine(xe.GetAttribute("ISBN"));

        XmlNodeList xnf1 = xe.ChildNodes;
                    StringBuilder nodeText=new StringBuilder();
        foreach (XmlNode xn2 in xnf1)
        {
                       nodeText.Append(xn2.InnerText+",");
            Console.WriteLine(nodeText.ToString());//显示子节点点文本  
        }

    }
            这样?
Csdn user default icon
上传中...
上传图片
插入图片