我有一個是這樣的一個XML文檔:如何獲取具有某個屬性的節點的所有子節點?
<Menu>
<Category name="Comida Rapida">
<Food cocina="si">
<Name>Haburguesa</Name>
<Price>10</Price>
</Food>
<Food>
<Name>Papas Fritas</Name>
<Price>20</Price>
</Food>
</Category>
<Category name="Bebidas">
<Food>
<Name>Pepsi</Name>
<Price>30</Price>
</Food>
<Food cocina="si">
<Name>Coca Cola</Name>
<Price>40</Price>
</Food>
</Category>
</Menu>
我想要做的就是通過每<Category>
檢查,如果該屬性是我需要的,例如「BEBIDAS」,所以部分我感興趣的是:
<Food>
<Name>Pepsi</Name>
<Price>30</Price>
</Food>
<Food cocina="si">
<Name>Coca Cola</Name>
<Price>40</Price>
</Food>
現在,我有這個,我想要做類似的東西我做了什麼已經:
首先我要打印出所有:
Pepsi 30
Coca Cola 40
而且我想打印出來只有那些食物有屬性cocina="si"
,所以:
Coca Cola 40
所以我有各種各樣的問題:
首先要使用的方法,我被大量的可能的方法和實現困惑:XmlDocument,XmlReader,XmlTextReader等
從this question我收集XmlDocument更容易使用,這將是偉大的,更簡單的,th更好的是,因爲我可以欣賞到,因此對於解析Xml文件來說,這是相當新的。
我們在實際執行中,我已經嘗試了所有種類的東西沒有太大的更迭,我似乎能夠做一些部分而不是全部一起。
XmlNodeList elemList = doc.GetElementsByTagName("Category");
for (int i = 0; i < elemList.Count; i++)
{
Console.WriteLine(elemList[i].InnerXml);
}
這將輸出:
<Food><Name>Haburguesa</Name><Price>10</Price></Food><Food><Name>Papas Fritas</Name><Price>20</Price></Food>
<Food><Name>Pepsi</Name><Price>30</Price></Food><Food><Name>Coca Cola</Name><Price>40</Price></Food>
這是合理的,但現在,我該如何檢查,如果類具有屬性name="cocina"
?
我猜是這樣可以幫助:
for (int j = 0; j < elemList[i].Attributes.Count; j++)
{
//??
}
但我無法找到像XmlTextReader的MoveToAttribute()
。
再然後,我該如何檢查是否具有屬性cocina="si"
?
謝謝我正在嘗試它! – Trufa
我冒昧並更改了Format的格式。 – Trufa
我有一個問題,但我不知道如何使用'結果'。每個人都不應該做一個簡單的事情嗎另外,如果我正在閱讀文件,我應該使用XDocument.Load()對嗎? – Trufa