在 XCData 中插入 XElement

发布于 2024-12-28 18:14:35 字数 598 浏览 0 评论 0原文

我正在修改一个 XML 生成器脚本,该脚本从 Sharepoint 列表中提取数据,并从中生成 XML。

XML 的一部分如下所示:

<node>
    <node2>
        <![CDATA[
            <p>Some text</p>
        ]]>
    </node2>
    <otherNodesHere>Yadda yadda</otherNodesHere>
</node>

从数据列表中提取的数据将是“一些文本”,没有周围的 P 标记。

所以,我想要做的是(片段):

new XElement("node",
    new XElement("node2",
        new XCData(
            new XElement("p", variableForTheDatainSP)),

但我不能做 new XCData(new XElement("p", ....)), 解决这个问题的简单方法是什么?

I'm modifying an XML generator script that pulls data from a Sharepoint list, and generates XML from it.

One section of the XML looks like:

<node>
    <node2>
        <![CDATA[
            <p>Some text</p>
        ]]>
    </node2>
    <otherNodesHere>Yadda yadda</otherNodesHere>
</node>

The data being pulled from a data list is going to be "Some text" without the surrounding P tags.

So, what I'm wanting to do is (snippet):

new XElement("node",
    new XElement("node2",
        new XCData(
            new XElement("p", variableForTheDatainSP)),

But I can't do new XCData(new XElement("p", ....)),
What would be a simple way to go about this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

于我来说 2025-01-04 18:14:35

Some text

实际上并不是 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()),

The <p>Some text</p> isn't really an XElement - it's just text that looks like XML. So you'd use:

new XElement("node",
    new XElement("node2",
        new XCData("<p>Some text</p>")))

Or if you wanted to build it via an XElement, you could always call ToString():

new XElement("node",
    new XElement("node2",
        new XCData(
            new XElement("p", variableForTheDatainSP).ToString()),
很糊涂小朋友 2025-01-04 18:14:35

那不是一个元素。
CDATA 块的全部要点是它们只能保存纯文本。

如果要将类似于 XML 的纯文本放入 CDATA 块中,可以传递 new XElement(...).ToString() 来获取原始 XML 字符串。

That's not an element.
The whole point of CDATA blocks is that they can only hold plain text.

If you want to put plain text that looks like XML into the CDATA block, you can pass new XElement(...).ToString() to get the raw XML string.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文