【问题标题】:Extracting data from CDATA using LINQ to XML使用 LINQ to XML 从 CDATA 中提取数据
【发布时间】:2010-09-15 17:17:57
【问题描述】:

我有以下 xml 文件,我正在尝试使用 linq to xml 来获取位于 CDATA 部分内的元素。请有任何建议。

<?xml version = "1.0" encoding = "UTF-8"?>
<result final = "true" transaction-id="84WO" xmlns="http://cp.com/rules/client">
<client id = "CustName'>
<quoteback>
</client>
<report format = "CP XML">
<![CDATA[<?xml version="1.0" encoding = "UTF-8" standalone = "yes"?>
 <personal_auto xmlns = "http://cp.com/rules/client">
    <admin>
    </admin>
    <report>
    </report>
 </personal_auto>
]]>
</report> </result>

【问题讨论】:

  • 请编辑您的问题(这次使用预览),因为我在您的 XML 示例中看不到任何内容。
  • 您的 XML 无效。 &lt;?xml 行必须是第一行。
  • 仍然缺少关闭g restult 标签。

标签: linq-to-xml cdata


【解决方案1】:
 XElement XTemp = XElement.Load(YourXMLfile);  
var queryCDATAXML = from element in XTemp.DescendantNodes()
                         where element.NodeType == System.Xml.XmlNodeType.CDATA
                         select element.Parent.Value.Trim(); 

【讨论】:

    【解决方案2】:

    这是标准 LINQ 功能 - 请参阅 http://msdn.microsoft.com/en-us/library/system.xml.linq.xcdata.aspx

    如果这不能解决问题,您能否更详细地解释问题?

    【讨论】:

    • 我的要求是获取 CDATA 部分中的所有元素,如何使用 LINQ to XML 获取它
    • 啊,你希望有人为你做你的工作。没有真正回答问题。正确的。稍后快速谷歌:jarvis.com.au/post/2008/09/I-love-Linq-to-XML.aspx
    • Rushyo。对不起。我的 XML 文件在 CDATA 部分中有一个 XML 文件。我在这里尝试完成的任务是我需要能够在 CDATA 部分中导航 xml 文件并提取必要的元素。请问有什么建议吗?
    • 对。那么您的意思是您在 XML 文档中有一个 XML 文档?全部在 LINQ 语句中?不确定这是否可能,但我很乐意有人纠正我。一般来说,我无法想象有人会这样做。
    • 我建议只获取所需的 CDATA 元素,加载文档,然后对其执行第二个查询。
    【解决方案3】:

    我希望做一些稍微不同的事情 - 我正在使用 cdata 在其名为“sql”的专用元素中将 sql 嵌入到 xml 中

    只是为了澄清cdata内容将被透明读取。

    如果你这样做了

    var cdataContent = sql.Value;
    

    你得到任何字符串在

     <![CDATA[..]]>
    

    标签,无需在其上实例化不同的节点类型或做任何花哨的事情

    所以在上述情况下,cdataContent 将只是“..”。

    Linq to sql 真的很不错!我总是希望有更多的混乱参与。向制作该 API 的人致敬。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-05-18
      • 2010-12-16
      • 1970-01-01
      • 1970-01-01
      • 2011-07-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多