質問

私がこれとしてコーディングしようとするとき、

XPathNodeIterator it;

string selectStr = "Equipment/Group/item";
it = nav.Select(selectStr);
while (it.MoveNext())
{
    String strVal = "";
    if (it.Current.HasChildren)
    {
        strVal = it.Current.Value.ToString(); // get wrong value here. I want to get 'COM' and 'MD'
    }
}

これとして私のXMLファイル

<Equipment xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <License licenseId="" licensePath=""/>
  <Group>
    <item>
      <key>COM</key>
      <value>
        <format>10</format>
        <value>0</value>
      </value>
    </item>
    <item>
      <key>MD</key>
      <value>
        <format>20</format>
        <value>test</value>
      </value>
    </item>
.....

使用すると見つけました while すべてのXMLファイルをループする方法は非常に便利です。

しかし、XpathnodeTeratorを上記のように定義したときに要素値を取得するための関係を確立する方法がわかりませんか?

実際、XpathnodeTeratorの助けを借りてXMLファイル全体を読む必要があります。

役に立ちましたか?

解決

サブノードごとに新しいイテレーターを起動して、サブ項目のみを選択する必要があります。 XPathNodeIteratorxpath 一般的に、より向きが向いています 抽出 XMLからのデータ。 XMLファイル全体を読みたい場合は、考慮する必要があります xmlreader (非常に高速、フォワードのみ)または Xdocument (使いやすい)。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top