日期:2014-05-17  浏览次数:20824 次

C#解析xml文件疑惑

<?xml version="1.0" ?>
<report_ds>
<index_list>
<item ves_name="LMCA" depth="56" vs="82" vd="65" vm="73" pi="2.3" ri="1.2" hr="66" li="-"/>
<item ves_name="RMCA" depth="56" vs="81" vd="62" vm="71" pi="1.3" ri="0.2" hr="63" li="-"/>
</index_list>
</report_ds>


我对C#解析上面的xml节点有点疑惑,当我解析到index_list节点里面的item节点时,如果我事先不知道item里面有多少项,也不知道ves_name、depth、vs、vd等等这些key的名称,如果我要读取这些key的名称和它们对应的值,比如我要读取key=ves_name,val=LMCA,想这样一一对应的读出来,而且想知道item里面有多少项,C#代码要怎么做,请哪位朋友给个代码示范一下。谢谢!

------解决方案--------------------

XmlDocument xml = new XmlDocument();
            xml.LoadXml(@"<report_ds><index_list><item ves_name='LMCA' depth='56' vs='82' vd='65' vm='73' pi='2.3' ri='1.2' hr='66' li='-'/>
        <item ves_name='RMCA' depth='56' vs='81' vd='62' vm='71' pi='1.3' ri='0.2' hr='63' li='-'/>
    </index_list>
</report_ds>");
            XmlNode node = xml.SelectSingleNode(@"report_ds/index_list/item");
            int childNodeCount = node.ChildNodes.Count;//item节点的子节点个数
            int itemAttrCount = node.Attributes.Count;//item节点的属性个数
            for (int i = 0; i < itemAttrCount; i++)
            {
                string attrName = node.Attributes[i].Name;//属性名称
                string attrValue = node.Attributes[i].Value;//属性值 
            }