【发布时间】:2014-08-03 11:29:40
【问题描述】:
如果我有以下 xml 元素:
<TEST><![CDATA[12345]]></TEST>
我正在尝试使用以下代码提取 <TEST> xml 元素的值:
XElement elem = documet.XPathSelectElement(xpath_to_TEST); //xpath_to_TEST is the actual xpath to that element
var value = elem.value //value of <TEST>
上面代码的问题是value 变量包含12345,我想在其中获取<TEST> 的整个值作为字符串,包括像<![CDATA[12345]]> 这样的CDATA 标记。
这可能吗?
【问题讨论】:
-
我已经编辑了你的标题。请参阅“Should questions include “tags” in their titles?”,其中的共识是“不,他们不应该”。
-
我相信如果您需要 CDATA 元素,您应该只挖掘子元素而不是要求价值。旁注:CDATA 只是表示节点值的一种方式,通常并不重要。示例代码stackoverflow.com/questions/1236785/…
-
@AlexeiLevenkov 我意识到逻辑是能够通过分解每个元素及其确切值来分解 XML 元素,以便以后用户可以通过不同的过程重建响应。我只需要能够获得给定 xml 元素的确切值,所以如果它有标记,那么我需要保留它,在这种情况下,CDATA 很重要,否则它会变成我从原始输入中丢失的数据。跨度>
-
正如我所链接的,我相信您正在寻找类似
DescendantNodes().OfType<XCData>()