首页 > 解决方案 > 获取 XML 字符串的价值

问题描述

嗨,我一直在研究这个用 c# 编写的 asp.net webform,我目前正在获取封装在字符串中的 XML 结果的价值。我对 XML 知之甚少,这是我的尝试。

我有这个 XML 字符串

<Code>0</Code>
<responseData>
    <LotDetails>
        <DEVICE>OH503/E-ICAM</DEVICE>
        <DEVICE12NC>340000064194</DEVICE12NC>
        <CONTAINERNAME>MBP001012700</CONTAINERNAME>
        <PACKAGE>SOT1207</PACKAGE>
    </LotDetails>
</responseData>

我需要 <CONTAINERNAME> 在 c# 中获取值我有这个代码

string result = tmpVal.GetQueryResult(System.Configuration.ConfigurationManager.AppSettings["queryname_CMSS"].ToString(), System.Configuration.ConfigurationManager.AppSettings["paramnames_CMSS"].ToString(), LotID).InnerXml.ToString();
     XmlDocument doc = new XmlDocument();
            doc.LoadXml(result);
            XmlNode idNode = doc.SelectSingleNode("//responseData/LotDetails/CONTAINERNAME");

我上面的代码返回一个错误,dditional information: There are multiple root elements. Line 1, position 16. 看起来我没有在我的 XML 结果中获取根元素。有人会帮我解决这个问题吗?先感谢您。希望你明白我的意思。

标签: c#asp.net.netxml

解决方案


您可以像这样反序列化没有父节点的xml,

    XmlDocument doc = new XmlDocument();
    doc.LoadXml("<parent>" + result + "</parent>");
    //doc.LoadXml($"<parent>{result}</parent>");

    XmlNode idNode = doc.SelectSingleNode("//responseData/LotDetails/CONTAINERNAME");

或者,您可以使用一种方法来解析没有父节点的 XML


推荐阅读