私は次のXMLを持っています
<Company name="Kinanah Computers">
<Computer Name="Computer" type="Dell">
<Accessory type="screen" model="dell"/>
<Accessory type="mouse" model="dell"/>
<Accessory type="keyboard" model="dell"/>
</Computer>
<Computer Name="Computer" type="HP">
<Accessory type="screen" model="hp"/>
<Accessory type="mouse" model="chinese"/>
<Accessory type="keyboard" model="dell"/>
</Computer>
<Computer Name="Computer" type="HP">
<Accessory type="screen" model="hp"/>
<Accessory type="mouse" model="chinese"/>
<Accessory type="keyboard" model="dell"/>
</Computer>
<Computer Name="Computer" type="acer">
<Accessory type="screen" model="acer"/>
<Accessory type="mouse" model="acer"/>
<Accessory type="keyboard" model="acer"/>
</Computer>
</Company>
私がやりたいのは、タイプがHPの場合はHPコンピューターをスキップすることですが、その方法を教えてもらえますか?
私は次のC#コードを使用しています:
var stream = new StringReader(instanceXml/*the xml above*/);
var reader = XmlReader.Create(stream);
var hpCount = 0;
reader.MoveToContent();
while (reader.Read())
{
if(reader.NodeType == XmlNodeType.Element)
{
if(reader.GetAttribute("Name") == "Computer" && reader.GetAttribute("type") == "HP")
{
if(hpCount >1)
{
reader.Skip();
continue;
}
hpCount++;
}
}
}
しかし、スキップは機能していません。読み取られた次の要素は
<Accessory type="screen" model="hp"/>
これらの行をスキップする方法の助けはありますか?ありがとうございました。