1

このようにコーディングしようとすると、

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ファイルをループすると、非常に便利であることがわかりました。

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

実際には、XPathNodeIterator を使用して Xml ファイル全体を読み取る必要があります。

4

1 に答える 1

1

サブアイテムのみを選択して、サブノードごとに新しいイテレータを開始する必要があります。XPathは一般にXPathNodeIterator、xmlからデータを抽出することを目的としています。XMLファイル全体を読み取りたい場合は、XmlReader(非常に高速、転送のみ)またはXDocument(使いやすい)を検討する必要があります。

于 2010-12-08T09:31:00.133 に答える