首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用xmlnodeslist向多个the节点追加新的xmlNode只保留最后一个更改?

使用xmlnodeslist向多个the节点追加新的xmlNode只保留最后一个更改?
EN

Stack Overflow用户
提问于 2013-12-28 21:53:20
回答 1查看 76关注 0票数 0

我正在尝试在xmlDocument的不同地方添加一个xmlDocument。以下是我的xml文件的简化版本:

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-16"?>
<Campus id="cmps-1">
    <Location>
        <Name>Boston, IN, USA</Name>
    </Location>
    <Building id="bldg-1" buildingType="TownHall">
        <Area>1928.368051</Area>
        <Name>Level 1</Name>
        <Space id="sp-1" IdRef="bldg-stry-1">
            <Name>5 BEDROOM 1</Name>
        </Space>
        <Space id="sp-2" IdRef="bldg-stry-1">
            <Name>5 BEDROOM 1</Name>
        </Space>
        <Space id="sp-3" IdRef="bldg-stry-1">
            <Name>5 BEDROOM 1</Name>
        </Space>        
    </Building>
</Campus>

我想将以下xmlNode添加到"Name“元素后面的"Space”节点中。

代码语言:javascript
复制
<Inf>
    <Blow />
</Inf>

下面是我使用的代码:

代码语言:javascript
复制
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(@"C:\mm.xml");

XmlNamespaceManager nsmgr = new XmlNamespaceManager(xmlDoc.NameTable);
nsmgr.AddNamespace("mm", "http://www.mm.com");

XmlNodeList spaceNodes = xmlDoc.SelectNodes("descendant::mm:Space");

//node to be added
XmlNode infNode = xmlDoc.CreateNode(XmlNodeType.Element, "Inf", "http://www.mm.com");
XmlNode blowNode = xmlDoc.CreateNode(XmlNodeType.Element, "Blow", "http://www.mm.com");
infNode.AppendChild(blowNode);

foreach (XmlNode spaceN in spaceNodes)
{
    spaceN.AppendChild(infNode);
}
xmlDoc.Save(@"C:\mmNew.xml");

但是代码只为一个"Space“节点保存它,并松开在循环中创建的前一个节点。因此,在最后,只有最后一个空格添加了节点。我读过几篇类似的文章(尝试过循环,也使用了系统列表),但没能解决这个问题。如果你能帮我,我会很感激的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-23 22:50:38

我找到解决办法了。我只需要在循环中定义参数来解决这个问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20819790

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档