XMLNodes集合中的xQuery单XMLNode

时间:2011-08-04 14:02:29

标签: xml xquery

我有一个包含名为Standplaatsen的节点的XML文件。 我可以得到这些节点的集合。然后我想用foreach循环将其钻入此集合中,并检查节点集合中的每个单独节点。

foreach (XmlNode XMLNode in XMLNodes)
{
   //This will be found nicely
   string test1 = XMLNode["bag_LVC:identificatie"].InnerXml.ToString();
   //This will cause a NULL reference with or without a leading '//'
   string test2 = XMLNode["bag_LVC:gerelateerdeAdressen/bag_LVC:hoofdadres/bag_LVC:identificatie"].InnerXml.ToString();
   // This will get the element BUT it will only get the same
   // first element whatever node is procesed
   string xPathExpression = "//bag_LVC:gerelateerdeAdressen/bag_LVC:hoofdadres/bag_LVC:identificatie";
   XmlElement Hoofdadres = (XmlElement)XMLNode.SelectSingleNode(xPathExpression, ns);
}

有谁知道如何获得每个节点的hoofdadres\identificatie元素的正确值。

示例XML:

     <xb:antwoord>
      <xb:producten>
      <product_LVC:LVC-product>
        <bag_LVC:Standplaats>
          <bag_LVC:gerelateerdeAdressen>
            <bag_LVC:hoofdadres>
              <bag_LVC:identificatie>1883200000020771</bag_LVC:identificatie> 
            </bag_LVC:hoofdadres>
           </bag_LVC:gerelateerdeAdressen>
         <bag_LVC:identificatie>1883030000000010</bag_LVC:identificatie> 
       </bag_LVC:Standplaats>

       <bag_LVC:Standplaats>
          <bag_LVC:gerelateerdeAdressen>
            <bag_LVC:hoofdadres>
              <bag_LVC:identificatie>1883200000015663</bag_LVC:identificatie> 
            </bag_LVC:hoofdadres>
          </bag_LVC:gerelateerdeAdressen>
        <bag_LVC:identificatie>1883030000000011</bag_LVC:identificatie> 
       </bag_LVC:Standplaats>
       </product_LVC:LVC-product>
       </xb:producten>
       </xb:antwoord>

更新

当我使用//*:hoofdadres/*:identificatie时,我得到了一个例外

//*:hoofdadres/*:identificatie' has an invalid token.

这是困扰我的部分:

// This will get the element BUT it will only get the same
// first element whatever node is processed
string xPathExpression = "//bag_LVC:gerelateerdeAdressen/bag_LVC:hoofdadres/bag_LVC:identificatie";
XmlElement Hoofdadres = (XmlElement)XMLNode.SelectSingleNode(xPathExpression, ns);

1 个答案:

答案 0 :(得分:0)

纯xquery中的

doc()//\*:hoofdadres/\*:identificatie