首页 新闻 会员 周边 捐助

XML操作问题,急!!!

0
悬赏园豆:30 [已关闭问题] 关闭于 2012-10-19 09:44

<xml>
<message>ok</message>
<condition>F00</condition>
<status>1</status>
<state>3</state>
<data>
<time>测试1</time>
<context>测试1</context>
</data>
<data>
<time>测试2</time>
<context>测试2</context>
</data>
<data>
<time>测试3</time>
<context>测试3</context>
</data>
</xml>

如这样的XML,希望得到的结果如下:

加个<datas></datas>,将所有的<data></data>括起来,然后就可以做反序列化了 

<xml>
<message>ok</message>
<condition>F00</condition>
<status>1</status>
<state>3</state>

<datas>
<data>
<time>测试1</time>
<context>测试1</context>
</data>
<data>
<time>测试2</time>
<context>测试2</context>
</data>
<data>
<time>测试3</time>
<context>测试3</context>
</data>

</datas>
</xml>

lingxiayidu的主页 lingxiayidu | 初学一级 | 园豆:31
提问于:2012-07-18 10:21
< >
分享
所有回答(4)
0

将问题表达清楚,问题就解决了一半。

建议用文字表达出你想要达到的效果。

dudu | 园豆:30948 (高人七级) | 2012-07-18 10:58

就是想加个 <datas></datas>把所有的<data></data>都括起来,这样就可以做反序列化了。

支持(0) 反对(0) lingxiayidu | 园豆:31 (初学一级) | 2012-07-18 12:43
0

只要 你的 class 实体定义的 是下面的 结构,那么 就会 生成的xml 就是这样子哦

無限遐想 | 园豆:3740 (老鸟四级) | 2012-07-18 11:02
0

你的意思是首先读取上面的xml文件,再生成下面的文件,功能是:在生成文件的时候

1 <datas></datas>把所有的<data></data>都括起来

成为:

 1 <xml>
 2 <message>ok</message>
 3 <condition>F00</condition>
 4 <status>1</status>
 5 <state>3</state>
 6 <datas>
 7 <data>
 8 <time>测试1</time>
 9 <context>测试1</context>
10 </data>
11 <data>
12 <time>测试2</time>
13 <context>测试2</context>
14 </data>
15 <data>
16 <time>测试3</time>
17 <context>测试3</context>
18 </data>
19 </datas>
20 </xml>

这种效果...对吧

这样做其实很简单的,只是在生成xml的时候,在<data>节点前面加一个父节点<datas>就可以了。。。

Hongten | 园豆:1768 (小虾三级) | 2012-07-18 13:42

不是的,这个XML已经存在了,我要去读取这个XML然后处理成<datas></datas>括起来的效果。

支持(0) 反对(0) lingxiayidu | 园豆:31 (初学一级) | 2012-07-18 17:49
0

可以实现,但是你要清楚xml文件节点分布,我是套用你的节点分布的

 

<xml>
<message>ok</message>
<condition>F00</condition>
<status>1</status>
<state>3</state>
<data>
<time>测试1</time>
<context>测试1</context>
</data>
<data>
<time>测试2</time>
<context>测试2</context>
</data>
<data>
<time>测试3</time>
<context>测试3</context>
</data>
</xml>

 

 

 private void btnUpdateXml_Click_1(object sender, EventArgs e)
        {
            XmlDocument xml = new XmlDocument();
            xml.Load("XmlTest.xml");
            XmlNode xmlNode = xml.DocumentElement;
            XmlNodeList data = xmlNode.SelectNodes("data");
            //创建节点
            XmlElement datas = xml.CreateElement("datas");
            for(int i=0;i<data.Count;i++)
            {
                datas.AppendChild(data[i]);
               
            }
            xmlNode.InsertAfter(datas, xmlNode.LastChild);
            xml.Save("XmlTest.xml");
        }

a85295853 | 园豆:2 (初学一级) | 2012-07-19 10:13

不知道用innerText替换会不会更快

支持(0) 反对(0) arg | 园豆:1047 (小虾三级) | 2012-07-24 18:09

innerText?

支持(0) 反对(0) a85295853 | 园豆:2 (初学一级) | 2012-07-25 12:45

@a85295853: 加我的群相互交流问题解决问题 183450771

支持(0) 反对(0) a85295853 | 园豆:2 (初学一级) | 2012-08-01 14:00
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册