【问题标题】:LINQ To XML Getting a value without the nodes insideLINQ To XML 获取没有内部节点的值
【发布时间】:2011-06-18 02:39:26
【问题描述】:

我有这个 XML:

<chunk type="manufacturer_info" id="" note="">test: <chunk type="style" style="link">${manufacturer_website}</chunk></chunk>

我需要将“test:”与内部元素分开。

编辑: 这将作为 XElement 进入函数。

【问题讨论】:

    标签: c# xml linq-to-xml


    【解决方案1】:

    元素有两个子节点:一个文本节点和一个 元素。

    可以通过如下方式获取文本节点的值:

    var element = XElement.Parse(@"<chunk type=""manufacturer_info"" ...");
    
    var result = string.Concat(element.Nodes().OfType<XText>());
    // result == "test: "
    

    【讨论】:

    • 返回 "${manufacturer_name}" 我怎么才能得到 "test:"?
    • @Ryan:它在您发布的 XML 上返回“test:”,所以这个答案是正确的。
    • 这可能是因为我将它作为 XElement 输入到函数中。我还需要创建 XDocument 吗?
    • @Ryan:将doc.Root 替换为代表外部&lt;chunk&gt; 元素的XElement
    • 在这种情况下,没有我所展示的外部 元素。抱歉,这有意义吗?
    【解决方案2】:

    给你。

              string xml =  @"<Chunks><chunk type='manufacturer_info' id='' note=''>test:                <chunk type='style' style='link'>${manufacturer_website}</chunk></chunk></Chunks>";
    
              var xDoc = XDocument.Parse(xml);
              var res = xDoc.DescendantNodes().OfType<XText>().First().Value;
    

    【讨论】:

      猜你喜欢
      • 2012-09-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多