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