XML将所有子元素重命名为相同的标记名称

时间:2016-03-28 15:15:46

标签: c# asp.net xmldocument

我有以下XML文档结构。

<FareSearchResponse>
    <AirlineList>
        <AQR>...</AQR>
        <ABA>...</ABA>
        <AAI>...</AAI>
        <A9W>...</A9W>
        <AVS>...</AVS>
        <AAF>...</AAF>
        <AEY>...</AEY>
        <ALH>...</ALH>
        <AQF>...</AQF>
    </AirlineList>
</FareSearchResponse>

我想将AirlineList的所有子元素重命名为Airline。子名称标签各不相同,可以是任何名称。因此,无法知道将出现哪些名称标签以及它们将是什么。它是来自Web服务的动态XML文档。到目前为止,我已设法将XML字符串加载到XmlDocument;

XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml(System.Web.HttpUtility.HtmlDecode(resultString));
XElement firstChild = xmlDoc.ToXDocument().Root.Elements().First();

我想选择所有AirlineList元素并将它们重命名为Airline。

我添加了更多细节。 XML文档现在包含在firstChild中。如何替换firstChild中的元素而不是直接替换XmlDocument

中的元素

感谢。

1 个答案:

答案 0 :(得分:1)

  

我想选择所有AirlineList元素并将它们重命名为Airline。

Linq用于Xml并更新子元素的Name

var doc = XDocument.Load(filepath);

foreach (var element in doc.Descendants("AirlineList").Elements())
{
    element.Name ="Airline";
}

选中此example