我有这样的数据xml:
<ListeNoeuds>
<Noeud>
<Cle>Commande</Cle>
<Attributs>
<Noeud>
<Cle>nbrActionTraitees</Cle>
<Valeur>25</Valeur>
</Noeud>
<Noeud>
<Cle>nbrErreurs</Cle>
<Valeur>32</Valeur>
</Noeud>
<Noeud>
<Cle>SujetEmail</Cle>
<Valeur>Compte rendu du défichage Préventel XXXXXXXX</Valeur> </Noeud>
</Attributs>
<SousNoeuds>
<Noeud>
.....
我只想提取值,其中cle = SujetEmail。 这意味着我想得到这个价值:Compte rendududéfichagePréventelXXXXXXXX
我试过了:
string Sujetmail = paramsXml.SelectSingleNode("/ListeNoeuds/Noeud/Attributs/Noeud/Cle[text()='SujetEmail']).InnerText;
获取cle的值。这是工作。
但是当我修改以获得像这样的valeur的值时:
string Sujetmail = paramsXml.SelectSingleNode("/ListeNoeuds/Noeud/Attributs/Noeud/Cle[text()='SujetEmail']/following-sibling").InnerText;
我得到了
我也试过这样:
string Sujetmail = paramsXml.SelectSingleNode("/ListeNoeuds/Noeud/Attributs/Noeud/Cle[text()='SujetEmail']/following-sibling::string[1]").ToString();
得到null ..请帮帮我。
答案 0 :(得分:1)
正确的XPath是
/ListeNoeuds/Noeud/Attributs/Noeud[Cle/text()='SujetEmail']/Valeur
答案 1 :(得分:1)
试试这个:
paramsXml.SelectSingleNode("/ListeNoeuds/Noeud/Attributs/Noeud[Cle[text()='SujetEmail']]/Valeur").InnerText;
答案 2 :(得分:0)
感谢您的回复......我找到了这样的解决方案:
XmlNode FindSujet = paramsXml.SelectSingleNode("/ListeNoeuds/Noeud/Attributs/Noeud/Cle[text()='SujetEmail']");
string Sujetmail = FindSujet.NextSibling.InnerText;