我正在修改一个XML生成器脚本,该脚本从Sharepoint列表中提取数据,并从中生成XML。
XML的一部分如下:
<node>
<node2>
<![CDATA[
<p>Some text</p>
]]>
</node2>
<otherNodesHere>Yadda yadda</otherNodesHere>
</node>
从数据列表中提取的数据将是“Some text”而没有周围的P标记。
所以,我想要做的是(摘录):
new XElement("node",
new XElement("node2",
new XCData(
new XElement("p", variableForTheDatainSP)),
但是我不能做新的XCData(新的XElement(“p”,....)), 什么是一个简单的方法来解决这个问题?
答案 0 :(得分:5)
<p>Some text</p>
不是真的 XElement
- 它只是看起来像XML的文本。所以你要使用:
new XElement("node",
new XElement("node2",
new XCData("<p>Some text</p>")))
或者,如果您想通过 XElement
构建,则可以随时致电ToString()
:
new XElement("node",
new XElement("node2",
new XCData(
new XElement("p", variableForTheDatainSP).ToString()),
答案 1 :(得分:1)
这不是一个元素
CDATA
块的重点是它们只能 保持纯文本。
如果要将看起来像XML的纯文本放入CDATA
块,可以传递new XElement(...).ToString()
以获取原始XML字符串。