XML 循环插入元素

sy_binbin 2008-04-17 10:07:34
我有的XML文件,格式是这样的:

<?xml version="1.0" encoding="gb2312" ?>
- <!-- 最后一次更新时间为:2008-4-17 9:16:33
-->
- <street na="" dq="">
<cj />
<cj />
</street>



其中<cj>的节点是动态变化的,也就是说有的XML文件里有2个<cj>,有的文件有可能就一个,有的有可能还没有

我现在想在每个<cj>下在加<wz>这个节点(固定20个)

最后的结果应该是:

<?xml version="1.0" encoding="gb2312"?>
<!--最后一次更新时间为:2008-4-17 9:55:42-->
<street na="" dq="">
<cj>
<wz id="" na="" ty="" dz="" />
<wz id="" na="" ty="" dz="" />
<wz id="" na="" ty="" dz="" />
<wz id="" na="" ty="" dz="" />
<wz id="" na="" ty="" dz="" />
<wz id="" na="" ty="" dz="" />
<wz id="" na="" ty="" dz="" />
<wz id="" na="" ty="" dz="" />
<wz id="" na="" ty="" dz="" />
<wz id="" na="" ty="" dz="" />
</cj>
<cj>
<wz id="" na="" ty="" dz="" />
<wz id="" na="" ty="" dz="" />
<wz id="" na="" ty="" dz="" />
<wz id="" na="" ty="" dz="" />
<wz id="" na="" ty="" dz="" />
<wz id="" na="" ty="" dz="" />
<wz id="" na="" ty="" dz="" />
<wz id="" na="" ty="" dz="" />
<wz id="" na="" ty="" dz="" />
<wz id="" na="" ty="" dz="" />
</cj>
</street>




我现在已经实现第一段代码的成生了,代码如下:

//maxcj为<cj>的个数
for (int i = 1; i <= maxcj; i++)
{
xml.InsertElement(XmlFilePath, "street", "cj");
}


在<cj>下生成<wz>该怎么去写呢??


不知道说明白没?呵呵
...全文
139 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
ericzhangbo1982111 2008-04-17
  • 打赏
  • 举报
回复
我也太不明白你要做什么 赫赫
xml如下
<?xml version="1.0" encoding="utf-8"?>
<street na="" dq="">

</street>



XmlDocument doc = new XmlDocument();
doc.Load(@"D:\Project\C#Test\WindowsApplication1\WindowsApplication1\XMLFile2.xml");

XmlNode node=doc.SelectSingleNode("//street");

for (int i = 0; i < 3; i++)
{
//XmlElement em=doc.CreateElement("cj");
XmlNode em=doc.CreateNode(XmlNodeType.Element, "cj", "");
for (int j = 0; j < 20; j++)
{
XmlNode n = doc.CreateNode(XmlNodeType.Element, "wj", "");
XmlAttribute a1 = doc.CreateAttribute("id");
a1.Value = "";
XmlAttribute a2 = doc.CreateAttribute("na");
a1.Value = "";
n.Attributes.Append(a1);
n.Attributes.Append(a2);
em.AppendChild(n);
}
node.AppendChild(em);
}

doc.AppendChild(node);
doc.Save(@"D:\Project\C#Test\WindowsApplication1\WindowsApplication1\XMLFile2.xml");


生成xml
<?xml version="1.0" encoding="utf-8"?>
<street na="" dq="">
<cj>
<wj id="" na="" />
<wj id="" na="" />
<wj id="" na="" />
<wj id="" na="" />
<wj id="" na="" />
<wj id="" na="" />
<wj id="" na="" />
<wj id="" na="" />
<wj id="" na="" />
<wj id="" na="" />
<wj id="" na="" />
<wj id="" na="" />
<wj id="" na="" />
<wj id="" na="" />
<wj id="" na="" />
<wj id="" na="" />
<wj id="" na="" />
<wj id="" na="" />
<wj id="" na="" />
<wj id="" na="" />
</cj>
<cj>
<wj id="" na="" />
<wj id="" na="" />
<wj id="" na="" />
<wj id="" na="" />
<wj id="" na="" />
<wj id="" na="" />
<wj id="" na="" />
<wj id="" na="" />
<wj id="" na="" />
<wj id="" na="" />
<wj id="" na="" />
<wj id="" na="" />
<wj id="" na="" />
<wj id="" na="" />
<wj id="" na="" />
<wj id="" na="" />
<wj id="" na="" />
<wj id="" na="" />
<wj id="" na="" />
<wj id="" na="" />
</cj>
<cj>
<wj id="" na="" />
<wj id="" na="" />
<wj id="" na="" />
<wj id="" na="" />
<wj id="" na="" />
<wj id="" na="" />
<wj id="" na="" />
<wj id="" na="" />
<wj id="" na="" />
<wj id="" na="" />
<wj id="" na="" />
<wj id="" na="" />
<wj id="" na="" />
<wj id="" na="" />
<wj id="" na="" />
<wj id="" na="" />
<wj id="" na="" />
<wj id="" na="" />
<wj id="" na="" />
<wj id="" na="" />
</cj>
</street>
sy_binbin 2008-04-17
  • 打赏
  • 举报
回复
==
我 试试
fcuandy 2008-04-17
  • 打赏
  • 举报
回复
每个cj下都有?

XmlNodeList xns = xd.SelectNodes("//street/cj");
foreach(XmlNode xn in xns)
{
XmlElement xe = xd.CreateElement("wz");
xe.SetAttribute("id", "1");
xe.SetAttribute("na", "");
xe.SetAttribute("ty", "");
xe.SetAttribute("dz", "");
xn.AppendChild(xe);

}


具体的值,你换为自己要想的。
sy_binbin 2008-04-17
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 fcuandy 的回复:]
你要插到第几个cj下?
[/Quote]


不是第一个CJ下

是所有的 CJ下都要有
fcuandy 2008-04-17
  • 打赏
  • 举报
回复
不说,我就当你要插到第一个下面。



XmlDocument xd = new XmlDocument();
xd.Load(Server.MapPath("test.xml"));
XmlNode xn = xd.SelectSingleNode("//street/cj");
XmlElement xe = xd.CreateElement("wz");
xe.SetAttribute("id", "1");
xe.SetAttribute("na", "");
xe.SetAttribute("ty", "");
xe.SetAttribute("dz", "");
xn.AppendChild(xe);
xd.Save(Server.MapPath("test.xml"));
fcuandy 2008-04-17
  • 打赏
  • 举报
回复
你要插到第几个cj下?

62,243

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧