【问题标题】:Retrieve a node value from xml从 xml 中检索节点值
【发布时间】:2015-05-23 04:18:56
【问题描述】:

我想从 xmldata 列中获取节点 <abc> 的值。

XML 数据如下:

<data id="d4E8121C9636942F18AC77F3EECD13ABA">
    <d id="pDF21A1781B684FAD8D476BF14F78D52D">
        <abc>ABC</abc>
    </d> 
</data>

代码如下:

using (var exampleSource = new ExampleDataSource())
{
    var xmlData = exampleSource.queue
        .Where(a => a.QueueID == queueID)
        .Select(a => a.XMLData)
        .FirstOrDefault();

    var messages = from m in xmlData 
                   select XElement.Parse("abc");
}

【问题讨论】:

  • 为什么要解析常量"abc"XMLData是什么类型的?
  • xmlData 是XDocument吗?
  • XMLData 是 nvarchar(max) 类型的队列表中的列名。
  • 我编辑了你的问题+标题。这与实体框架无关。 xmlData 的来源无关紧要,因为您只是在内存中解析字符串。

标签: c# linq linq-to-xml


【解决方案1】:

正如你所说的XMLDatastring,你需要解析它然后得到abc 的值,如下所示:

var abc = (string)XElement.Parse(xmlData).Descendants("abc").Single();

【讨论】:

    【解决方案2】:

    XElement.Parse() 用于将字符串转换为 XElement。

    我想你只是想要xmlData.Descendents("d").Descendents("abc")

    【讨论】:

      猜你喜欢
      • 2012-02-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多