У меня есть XML-файл, который содержит узел с именем Standplaatsen
.
Я могу получить коллекцию этих узлов. Затем я хочу развернуть его в этой коллекции с помощью цикла 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);