0

我有这样的数据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 rendu du défichage Préventel XXXXXXXX

我努力了 :

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();

有空..请帮帮我。

4

3 回答 3

1

试试这个:

paramsXml.SelectSingleNode("/ListeNoeuds/Noeud/Attributs/Noeud[Cle[text()='SujetEmail']]/Valeur").InnerText;
于 2017-07-27T12:53:01.830 回答
1

正确的 XPath 是

/ListeNoeuds/Noeud/Attributs/Noeud[Cle/text()='SujetEmail']/Valeur
于 2017-07-27T12:44:27.530 回答
0

感谢您的回复...我找到了这样的解决方案:

 XmlNode FindSujet = paramsXml.SelectSingleNode("/ListeNoeuds/Noeud/Attributs/Noeud/Cle[text()='SujetEmail']");
            string Sujetmail =  FindSujet.NextSibling.InnerText;
于 2017-07-27T12:52:22.813 回答