从单节点xml获取值
我的数据xml如下所示:从单节点xml获取值,xml,xpath,selectsinglenode,Xml,Xpath,Selectsinglenode,我的数据xml如下所示: <ListeNoeuds> <Noeud> <Cle>Commande</Cle> <Attributs> <Noeud> <Cle>nbrActionTraitees</Cle> <Valeur>25</Valeur> </Noeu
<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>
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();
XmlNode FindSujet = paramsXml.SelectSingleNode("/ListeNoeuds/Noeud/Attributs/Noeud/Cle[text()='SujetEmail']");
string Sujetmail = FindSujet.NextSibling.InnerText;
获取cle的值。这是工作
但当我修改以获得valeur的值时,如下所示:
<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>
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();
XmlNode FindSujet = paramsXml.SelectSingleNode("/ListeNoeuds/Noeud/Attributs/Noeud/Cle[text()='SujetEmail']");
string Sujetmail = FindSujet.NextSibling.InnerText;
我得到零
我也试过这样做:
<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>
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();
XmlNode FindSujet = paramsXml.SelectSingleNode("/ListeNoeuds/Noeud/Attributs/Noeud/Cle[text()='SujetEmail']");
string Sujetmail = FindSujet.NextSibling.InnerText;
获取空值。请帮助我。正确的XPath是
/ListeNoeuds/Noeud/Attributs/Noeud[Cle/text()='SujetEmail']/Valeur
正确的XPath是
/ListeNoeuds/Noeud/Attributs/Noeud[Cle/text()='SujetEmail']/Valeur
感谢您的回复…我发现我的解决方案如下:
<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>
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();
XmlNode FindSujet = paramsXml.SelectSingleNode("/ListeNoeuds/Noeud/Attributs/Noeud/Cle[text()='SujetEmail']");
string Sujetmail = FindSujet.NextSibling.InnerText;
感谢您的回复…我发现我的解决方案如下:
<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>
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();
XmlNode FindSujet = paramsXml.SelectSingleNode("/ListeNoeuds/Noeud/Attributs/Noeud/Cle[text()='SujetEmail']");
string Sujetmail = FindSujet.NextSibling.InnerText;
试试这个:
paramsXml.SelectSingleNode("/ListeNoeuds/Noeud/Attributs/Noeud[Cle[text()='SujetEmail']]/Valeur").InnerText;
试试这个:
paramsXml.SelectSingleNode("/ListeNoeuds/Noeud/Attributs/Noeud[Cle[text()='SujetEmail']]/Valeur").InnerText;