<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>
将问题表达清楚,问题就解决了一半。
建议用文字表达出你想要达到的效果。
就是想加个 <datas></datas>把所有的<data></data>都括起来,这样就可以做反序列化了。
只要 你的 class 实体定义的 是下面的 结构,那么 就会 生成的xml 就是这样子哦
你的意思是首先读取上面的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>就可以了。。。
不是的,这个XML已经存在了,我要去读取这个XML然后处理成<datas></datas>括起来的效果。
可以实现,但是你要清楚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");
}
不知道用innerText替换会不会更快
innerText?
@a85295853: 加我的群相互交流问题解决问题 183450771