ノードに値がある場合にのみ、顧客のオプションを出力したいと考えています。情報にアクセスして印刷することはできますが、while ループにより、各アカウントの情報が印刷されます。ヘルプやヒントをいただければ幸いです。
xml にアクセスするコードは次のとおりです。
XPathNodeIterator ItemOptionsIter;
String ItemsearchStringOptions = "Order/Items/Item/CustomerOptions";
ItemOptionsIter = nav.Select(ItemsearchStringOptions);
if (ItemIter.Current.SelectSingleNode("CustomerOptions") != null)
{
while (ItemOptionsIter.MoveNext())
{
XPathNodeIterator ItemOptions = ItemOptionsIter.Current.SelectChildren(XPathNodeType.Element);
if (ItemOptions.Current.HasChildren)
{
txtItemInfo.Text = txtItemInfo.Text + "Size: " + ItemOptions.Current.SelectSingleNode("Size") + Environment.NewLine;
txtItemInfo.Text = txtItemInfo.Text + "Color: " + ItemOptions.Current.SelectSingleNode("Color") + Environment.NewLine;
txtItemInfo.Text = txtItemInfo.Text + "-------------------------------------------------" + Environment.NewLine;
}
}
}
xml ファイルは次のとおりです。
<Item>
<PartNo>JETSWEATER</PartNo>
<Description>N.Y. Jets Sweatshirt</Description>
<UnitPrice>10.50</UnitPrice>
<Quantity>2</Quantity>
<TotalCost>21.00</TotalCost>
<CustomerOptions>
<Size>M</Size>
<Color>Green</Color>
</CustomerOptions>
</Item>
<Item>
<PartNo>JETSSWEATER</PartNo>
<Description>N.Y. Jets Sweatshirt</Description>
<UnitPrice>7.50</UnitPrice>
<Quantity>3</Quantity>
<TotalCost>22.50</TotalCost>
<CustomerOptions>
<Size>S</Size>
<Color>White</Color>
</CustomerOptions>
</Item>
<Item>
<PartNo>JETSFLAG</PartNo>
<Description>N.Y. Jets Flag for display</Description>
<UnitPrice>5.00</UnitPrice>
<Quantity>1</Quantity>
<TotalCost>5.00</TotalCost>
<CustomerOptions/>
</Item>
最後に、私の出力のサンプルを次に示します。
部品番号: ジェットセーター 説明: NY ジェッツ スウェットシャツ 単価: 10.50 数量: 2 合計費用: 21.00 -------------------------------------------------- サイズ: M 色: 緑 -------------------------------------------------- サイズ: S 色: 白 -------------------------------------------------- 品番:ジェットセーター 説明: NY ジェッツ スウェットシャツ 単価: 7.50 数量: 3 総コスト: 22.50 -------------------------------------------------- サイズ: M 色: 緑 -------------------------------------------------- サイズ: S 色: 白 -------------------------------------------------- 部品番号: JETSFLAG 説明: 表示用の NY ジェッツ フラグ 単価: 5.00 数量: 1 総コスト: 5.00 -------------------------------------------------- サイズ: M 色: 緑 -------------------------------------------------- サイズ: S 色: 白 --------------------------------------------------