Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用foreach添加父节点_C#_Xml_Nodes - Fatal编程技术网

C# 如何使用foreach添加父节点

C# 如何使用foreach添加父节点,c#,xml,nodes,C#,Xml,Nodes,我在使用C#的Xml生成器中遇到了一个大问题。我找不到如何添加包含元素名称的父节点 信息来自数据库并插入内存中的Xml文档。我必须按名称获取这些节点,因为我需要转换其中的一些节点 代码: 结果: <node> <a>1</a> <b>2</b> <c>3</c> <d>4</d> <a>1</a> <b>2

我在使用C#的Xml生成器中遇到了一个大问题。我找不到如何添加包含元素名称的父节点

信息来自数据库并插入内存中的Xml文档。我必须按名称获取这些节点,因为我需要转换其中的一些节点

代码:

结果:

<node>
    <a>1</a>
    <b>2</b>
    <c>3</c>
    <d>4</d>
    <a>1</a>
    <b>2</b>
    <c>3</c>
    <d>4</d>
    <a>1</a>
    <b>2</b>
    <c>3</c>
    <d>4</d>
</node>

1.
2.
3.
4.
1.
2.
3.
4.
1.
2.
3.
4.
我需要的是:

<node>
    <ex>
        <a>1</a>
        <b>2</b>
        <c>3</c>
        <d>4</d>
    </ex>
    <ex>
        <a>1</a>
        <b>2</b>
        <c>3</c>
        <d>4</d>
    </ex>
    <ex>
        <a>1</a>
        <b>2</b>
        <c>3</c>
        <d>4</d>
    </ex>
</node>

1.
2.
3.
4.
1.
2.
3.
4.
1.
2.
3.
4.

将子元素附加到名为“ex”的元素,然后将该元素附加到根元素

    foreach (XmlNode node in xd.DocumentElement.ChildNodes)
    {
        XmlNode imported = xd.ImportNode(node, true);
        XmlElement ex = xd.CreateElement("ex");
        ex.AppendChild(imported["a"]);
        ex.AppendChild(imported["b"]);
        ex.AppendChild(imported["c"]);
        ex.AppendChild(imported["d"]);
        xd.AppendChild(ex);
    }

将子元素附加到名为“ex”的元素,然后将该元素附加到根元素

    foreach (XmlNode node in xd.DocumentElement.ChildNodes)
    {
        XmlNode imported = xd.ImportNode(node, true);
        XmlElement ex = xd.CreateElement("ex");
        ex.AppendChild(imported["a"]);
        ex.AppendChild(imported["b"]);
        ex.AppendChild(imported["c"]);
        ex.AppendChild(imported["d"]);
        xd.AppendChild(ex);
    }
您可以使用此代码

    XmlElement xe = xd.CreateElement("xe");

    foreach (XmlNode node in xd.DocumentElement.ChildNodes)
    {
        XmlNode imported = xd.ImportNode(node, true);

        XmlElement child = xd.CreateElement("ex");

        child.AppendChild(imported["a"]);
        child.AppendChild(imported["b"]);
        child.AppendChild(imported["c"]);
        child.AppendChild(imported["d"]);

        xe.AppendChild(child); 

    }
您可以使用此代码

    XmlElement xe = xd.CreateElement("xe");

    foreach (XmlNode node in xd.DocumentElement.ChildNodes)
    {
        XmlNode imported = xd.ImportNode(node, true);

        XmlElement child = xd.CreateElement("ex");

        child.AppendChild(imported["a"]);
        child.AppendChild(imported["b"]);
        child.AppendChild(imported["c"]);
        child.AppendChild(imported["d"]);

        xe.AppendChild(child); 

    }

在何处创建“”节点?在foreach之前。。。。如果我将其插入foreachm,它运行正常:xmlnodeimported=xd.ImportNode(node,true);imported.ParentNode.AppendChild(已导入);但是我需要按名称获取每个节点以进行转换。您在哪里创建“”节点?在foreach之前。。。。如果我将其插入foreachm,它运行正常:xmlnodeimported=xd.ImportNode(node,true);imported.ParentNode.AppendChild(已导入);但是我需要每一个名字来转换它们。@ BiancaFonseca,如果这解决了你的问题,请考虑接受答案(点击答案左上方的记号)。@ BiancaFonseca,如果这解决了你的问题,请考虑接受答案(点击答案左上角的嘀嗒声)。