首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

C#解析xml资料疑惑

2013-09-24 
C#解析xml文件疑惑?xml version1.0 ?report_dsindex_listitem ves_nameLMCA depth56 vs

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;//属性值 
            }


刚好正在做,修改了一下,看是不是符合你的要求
[解决办法]
 class Program
    {
        static void Main(string[] args)
        {

            XmlDocument xmlDoc = new XmlDocument();
            xmlDoc.Load("XMLFile1.xml");

            XmlNode node = xmlDoc.SelectSingleNode("report_ds");

            foreach (XmlAttribute a in node.ChildNodes[0].ChildNodes[0].Attributes)
            {
                Console.WriteLine(a.Name + ":" + a.Value);
            }

            Console.Read();
        }
    }

热点排行