我在使用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/)「,其中的共識是」不,他們不應該「 –