首页 新闻 赞助 找找看

如何使用.net代码实现XML文件的<![CDATA[]]>

0
悬赏园豆:10 [已解决问题] 解决于 2012-07-02 09:12

<会变成&lt;>会变成&gt;<![CDATA[]]>这个前面有个<text>的节点,这是一起生成的吗

XML
元浩的主页 元浩 | 初学一级 | 园豆:109
提问于:2012-07-02 08:24
< >
分享
最佳答案
1

自动生成的。

<![CDATA[

内容

]]>

中的内容是可以是任何字符的,即便是XML里的关键符号都没问题。

收获园豆:10
无之无 | 大侠五级 |园豆:5095 | 2012-07-02 08:26

自动生成?

元浩 | 园豆:109 (初学一级) | 2012-07-02 08:28

@元浩: 

对,这段标识是自动生成的,你在构建一个XML元素的时候(无论是使用XMLDOCUMENT还是使用XELEMENT)都可以选择构建一个CDATA元素,具体的你参见下文档或代码编辑时的智能提示。

无之无 | 园豆:5095 (大侠五级) | 2012-07-02 08:30

@笨笨蜗牛: 就是说向我现在这样的代码

 XmlElement xe2 = xd.CreateElement("text");
        xe2.InnerText = "<![CDATA[" + "heilongjiang" + "]]>";

不需要自己加的是吧

元浩 | 园豆:109 (初学一级) | 2012-07-02 08:33

@元浩: 

对。你只要写:

xe2.InnerText = "heilongjiang"

就好。

不过,这个xe2不能通过:
xd.CreateElement("text")

来创建,你看下,xd下还有什么方法或者构建元素的方法还有哪些重载,有一个是能生成这样节点的。

无之无 | 园豆:5095 (大侠五级) | 2012-07-02 08:41

@元浩: 修正一下:

System.Xml.XmlDocument doc = new System.Xml.XmlDocument();
System.Xml.XmlElement root = doc.CreateElement("root");
System.Xml.XmlCDataSection cdata = doc.CreateCDataSection("heilongjiang");
root.AppendChild(cdata);
无之无 | 园豆:5095 (大侠五级) | 2012-07-02 08:49

@元浩: LINQ下的XML解决方案:

System.Xml.Linq.XCData cdata = new System.Xml.Linq.XCData("heilongjiang");
System.Xml.Linq.XElement root = new System.Xml.Linq.XElement("root");
root.Add(cdata);
无之无 | 园豆:5095 (大侠五级) | 2012-07-02 08:52

@笨笨蜗牛:  XmlCDataSection xe2 = xd.CreateCDataSection("text");
        xe2.InnerText =  "heilongjiang";

我现在就是这么做的,但是那个text元素不见了

元浩 | 园豆:109 (初学一级) | 2012-07-02 08:57

@元浩: 这里的"text"不再是节点名,而是节点内容。参考我前面的回复。

无之无 | 园豆:5095 (大侠五级) | 2012-07-02 09:01

@笨笨蜗牛: 好了,谢谢

元浩 | 园豆:109 (初学一级) | 2012-07-02 09:04

@元浩: 怎么给分。。。。。

元浩 | 园豆:109 (初学一级) | 2012-07-02 09:04

@笨笨蜗牛: 怎么给分……^-^

元浩 | 园豆:109 (初学一级) | 2012-07-02 09:05

@元浩: HOHO,首次来吧?偶的处女问也是这样。

无之无 | 园豆:5095 (大侠五级) | 2012-07-02 09:25

@笨笨蜗牛: 我能不能接着问?嘿嘿

元浩 | 园豆:109 (初学一级) | 2012-07-02 09:26

@元浩: 可以。

无之无 | 园豆:5095 (大侠五级) | 2012-07-02 10:05
其他回答(1)
0

生成XML的代码是怎么写的?

dudu | 园豆:31075 (高人七级) | 2012-07-02 08:51

谢谢,已经解决了

支持(0) 反对(0) 元浩 | 园豆:109 (初学一级) | 2012-07-02 09:12
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册