【问题标题】:how to get value(node) value from XML using asp.net c#如何使用asp.net c#从XML获取值(节点)值
【发布时间】:2020-08-11 19:59:28
【问题描述】:
<AspResp errCode="NA" errMsg="NA" status="1" transId="6c8c5901-6119-4c59-89ce-b3f9efb141f2">
    <EResp errCode="NA" errMsg="NA" resCode="ea3229b1-c9ff-455b-8d3f-84a4c2384c85" status="1" ts="2020-04-27T15:00:10.947" txn="90f4f36f-7051-4c6d-bed4-bd717ddfa38d">
        <Signatures>
            <DocSignature error="NA" id="1">test</DocSignature>
        </Signatures>
    </EResp>
</AspResp>

我想要上述 XML 中第一个节点的 transId 值。

我用过这段代码,但是没用

foreach (XElement hashElement in doc.Descendants("transId"))
{
    hashValue = (string)hashElement;
}

【问题讨论】:

    标签: asp.net xml


    【解决方案1】:

    http://xpather.com/2S8920tn测试xpath

    string XMLText =
                @"<AspResp errCode='NA' errMsg='NA' status='1' transId='6c8c5901-6119-4c59-89ce-b3f9efb141f2'><EResp errCode='NA' errMsg='NA' resCode='ea3229b1-c9ff-455b-8d3f-84a4c2384c85' status='1' ts='2020-04-27T15:00:10.947' txn='90f4f36f-7051-4c6d-bed4-bd717ddfa38d'><Signatures><DocSignature error='NA' id='1'>test</DocSignature></Signatures></EResp></AspResp>";
    var doc = XDocument.Parse(XMLText);
    string transId = doc.XPathSelectElement("/node()[1]").Attribute("transId")?.Value;
    

    【讨论】:

      【解决方案2】:

      选择所需的节点。由于transId 是一个属性,你应该像这样访问:

      string attrtransId  = node.Attributes["transId"].value
      

      【讨论】:

      • 我认为这需要更多细节才能有用,它与原始问题中的代码无关。
      【解决方案3】:

      看看这个,很详细,很容易理解。

      How do I read and parse an XML file in C#?

      string XMLText = @"<AspResp errCode='NA' errMsg='NA' status='1' transId='6c8c5901-6119-4c59-89ce-b3f9efb141f2'><EResp errCode='NA' errMsg='NA' resCode='ea3229b1-c9ff-455b-8d3f-84a4c2384c85' status='1' ts='2020-04-27T15:00:10.947' txn='90f4f36f-7051-4c6d-bed4-bd717ddfa38d'><Signatures><DocSignature error='NA' id='1'>test</DocSignature></Signatures></EResp></AspResp>";
              XmlDocument doc = new XmlDocument();
              doc.LoadXml(XMLText);
              XmlNode node = doc.GetElementsByTagName("AspResp")[0];
              string transId = node.Attributes["transId"].Value;
      

      【讨论】:

        猜你喜欢
        • 2013-08-12
        • 2019-12-03
        • 2021-05-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-05-09
        • 1970-01-01
        相关资源
        最近更新 更多