我在使用c#应用程序时遇到了一些麻烦。它只能够获得第一个节点的属性,然后它不能获得以下节点的属性。未检测到xml属性
的XML的格式如下..
<ALLPRODUCTS>
<PRODUCT ITEM="1">
<QUANTITY>5</QUANTITY>
</PRODUCT>
<PRODUCT ITEM="2">
<QUANTITY>6</QUANTITY>
</PRODUCT>....
将应用程序的第一个产品号1和它的5量......但之后,它只是提供了数量,并表示该项目号码为空。这里是代码即时通讯使用...
while (reader.Read())
{
if (reader.Name.Equals("PRODUCT"))
{
String id;
String qty;
try
{
id = reader.GetAttribute("ITEM");
reader.ReadToFollowing("QUANTITY");
qty = reader.ReadInnerXml();
if (qty.Equals("0"))
{
oos++;
}
else
{
inStock++;
}
status.Refresh();
stockLevelList.Add(id, qty);
}
catch (Exception e)
{
MessageBox.Show(e.Message, e.Source, MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
任何人都可以建议为什么后第一个产品为空作为ID?
除非您的XML很大(即大于25 Mb),否则最好使用DOM方法,如XmlDocument和SelectNodes用于此类操作。 –
我想你想要'reader.MoveToNextAttribute()',然后检查名称以查看它是否为'ITEM'。如果是,那么你可以调用'reader.Value'来获取它。尽管如此,我可能只是将XML序列化与一些POCO一起使用,而不是与XML Reader一起作战。 PITA可能是相当发展的。 – TyCobb
我编辑了你的标题。请参阅,“[应该问题包括在他们的标题”标签“?](http://meta.stackexchange.com/questions/19190/)“,其中的共识是”不,他们不应该“ –