linq to xml - 删除包装器节点

发布于 2024-11-08 12:07:07 字数 575 浏览 0 评论 0原文

有没有办法删除包裹其他几个节点的节点,但保留包含的节点?

我需要删除“AreaImageCaption”的所有实例,但需要保留“image”和“caption”

<products>
    <product>
        <name>100</name>
        <AreaImageCaption>
            <image>image1</image>
            <caption>caption1</caption>
        </AreaImageCaption>
        <AreaImageCaption>
            <image>image2</image>
            <caption>caption2</caption>
        </AreaImageCaption>
    </product>
</products>

谢谢

is there a way to remove a node that is wrapping a few other nodes, but keeping the containing nodes?

I need to remove all the instances of "AreaImageCaption", but need to keep "image" and "caption"

<products>
    <product>
        <name>100</name>
        <AreaImageCaption>
            <image>image1</image>
            <caption>caption1</caption>
        </AreaImageCaption>
        <AreaImageCaption>
            <image>image2</image>
            <caption>caption2</caption>
        </AreaImageCaption>
    </product>
</products>

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

独行侠 2024-11-15 12:07:07

尝试一下,

        string s =
            @"<products>
        <product>
            <name>100</name>
            <AreaImageCaption>
                <image>image1</image>
                <caption>caption1</caption>
            </AreaImageCaption>
            <AreaImageCaption>
                <image>image2</image>
                <caption>caption2</caption>
            </AreaImageCaption>
       </product>
    </products>";

        XElement element = XElement.Parse(s);
        element.Descendants("AreaImageCaption").ToList().ForEach(aic =>
                                                                 {
                                                                     aic.Elements().ToList().ForEach(el => aic.Parent.Add(el));
                                                                     aic.Remove();
                                                                 });

        string result = element.ToString();

我尝试添加 中的所有子元素并将其添加到其父元素,然后删除 元素。

Try this

        string s =
            @"<products>
        <product>
            <name>100</name>
            <AreaImageCaption>
                <image>image1</image>
                <caption>caption1</caption>
            </AreaImageCaption>
            <AreaImageCaption>
                <image>image2</image>
                <caption>caption2</caption>
            </AreaImageCaption>
       </product>
    </products>";

        XElement element = XElement.Parse(s);
        element.Descendants("AreaImageCaption").ToList().ForEach(aic =>
                                                                 {
                                                                     aic.Elements().ToList().ForEach(el => aic.Parent.Add(el));
                                                                     aic.Remove();
                                                                 });

        string result = element.ToString();

I'm trying to add all child elements from <AreaImageCaption /> and add it to it's parent and then remove the <AreaImageCaption /> element.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文