【问题标题】:Parse XML and fill string with element value解析 XML 并用元素值填充字符串
【发布时间】:2012-10-25 10:31:12
【问题描述】:

我正在 WPF 中测试数据绑定和调用 Web 服务。我正在使用返回以下 XML 的 Web 服务:

<?xml version="1.0" encoding="UTF-8"?>
<string xmlns="http://www.webserviceX.NET">
    <NewDataSet> 
         <Table> 
            <AtomicWeight>4.0026</AtomicWeight> 
         </Table> 
    </NewDataSet>
</string>

我正在尝试获取原子量并将该字符串分配给名为 LookupOutput 的属性。

我已经学习了 XPath 教程和 LINQ 教程,但找不到一个对于本示例来说足够简化的教程。从字符串中的 XML 获取单个元素的最简洁方法是什么?

【问题讨论】:

    标签: c# wpf xml web-services properties


    【解决方案1】:
    string xml = @"<string xmlns=""http://www.webserviceX.NET"">
        <NewDataSet> <Table> <AtomicWeight>196.967</AtomicWeight> </Table> </NewDataSet>
        </string>";
    
    var xDoc = XDocument.Parse(xmlstr); //or XDocument.Load(filename)
    XNamespace ns = "http://www.webserviceX.NET";
    string atomicWeight = xDoc.Descendants(ns + "AtomicWeight").First().Value;
    

    【讨论】:

    • 感谢您的回复。这给了我一个 InvalidOperationException 是未处理的错误,我的 XDocument 正在解析一个包含 XML 的字符串,我想知道问题是否存在?我在错误中有一个“序列不包含任何元素”的详细信息。
    • 使用 XDocument.Load(xmlString);返回一个错误,详细说明 XML 包含非法字符。
    • @mrEmpty 我猜你真正的 xml 与你发布的不同,因为这个答案适用于你的 xml
    • 这是我正在使用的网络服务的链接:link 以及我目前如何获取和使用它:var xDoc = XDocument.Load(wsm.GetAtomicWeight(lookupInput)); XNamespace ns = "http://www.webserviceX.NET"; LookupOutput = xDoc.Descendants(ns + "AtomicWeight").First().Value;
    • 我有这个工作,从上面 L.B 的回答开始,我写了以下内容:var xDoc = XDocument.Parse(wsm.GetAtomicWeight(lookupInput)); XNamespace ns = "http://www.webserviceX.NET"; LookupOutput = xDoc.Descendants("AtomicWeight").First().Value;
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-03
    • 2011-11-05
    • 1970-01-01
    • 1970-01-01
    • 2019-11-24
    • 1970-01-01
    相关资源
    最近更新 更多