【发布时间】:2018-05-13 23:55:15
【问题描述】:
我正在尝试从以下 XML 字符串中提取 url,ttype,tempTnxId,token,txnStage 的值:
<?xml version="1.0" encoding="UTF-8"?>
<MMP>
<MERCHANT>
<RESPONSE>
<url>https://payment.xyz.com/paynetz/epi/fts</url>
<param name="ttype">abc</param>
<param name="tempTxnId">12319507</param>
<param name="token">x5H9RrhgfXvamaqEl6GpY4uCoXHN%2FlEm%2BUpaaKuMQus%3D</param>
<param name="txnStage">1</param>
</RESPONSE>
</MERCHANT>
</MMP>
到目前为止,我只能使用以下代码提取带有索引的值:
foreach (XmlNode node in doc.SelectNodes("/MMP/MERCHANT/RESPONSE/param"))
{
string tempTxnId= doc.SelectNodes("/MMP/MERCHANT/RESPONSE/param")[1].InnerText;//only works with index and not name
}
/MMP/MERCHANT/RESPONSE/param 或 /MMP/MERCHANT/RESPONSE/ttype 不返回任何内容。
这个解决方案:Getting specified Node values from XML document 似乎不适合我。
XmlDocument doc = new XmlDocument();
doc.LoadXml(xmlstring);
var result = doc.Elements("table"); ///cant find Elements, Element is is not identified by the compiler
【问题讨论】:
-
无法复制。使用“/MMP/MERCHANT/RESPONSE/param”获取 4
XmlElements。 -
您是否尝试过将 XDocument 与 Linq to Xml 一起使用?
-
@SaniSinghHuttunen 我想我可能错过了一些东西。我也得到了 4 个元素。但我只能使用索引
doc.SelectNodes("/MMP/MERCHANT/RESPONSE/param")[1].InnerText;而不是名称来访问值