2016-03-28 34 views
2

Aşağıdaki XML belge yapısına sahibim.XML Tüm alt öğeleri aynı etiket adına yeniden adlandır

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

AirlineList öğesinin tüm alt öğelerini Havayolu şirketine yeniden adlandırmak istiyorum. Çocuk adı etiketleri değişir ve herhangi bir isim olabilir. Yani hangi isim etiketlerinin görüneceğini ve ne olacağını bilmenin bir yolu yoktur. Bir web servisinden dinamik bir XML belgesidir. Şimdiye kadar XML dizgisini bir XmlDocument içine yüklemeyi başardım;

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

Tüm AirlineList öğelerini seçmek ve Havayolu'ya yeniden adlandırmak istiyorum.

Daha fazla ayrıntı ekledim. XML belgesi, şimdi firstChild içinde yer almaktadır. Öğeleri firstChild öğesinde nasıl değiştiririm ve doğrudan XmlDocument

'dan teşekkürler.

+0

. Daha sonra XML'e serileştirin. – Casey

+0

Bunu başarmak için XPath'i kullanabilirsiniz. – JCM

+0

@Casey. Alt öğe adı etiketleri değiştiğinden, etiketlerin adlarını bilmenin bir yolu yoktur – LogicDev

cevap

2

Tüm AirlineList öğelerini seçmek ve Havayolu'ya yeniden adlandırmak istiyorum.

Kullanım Xml için Linq ve alt öğeleri için Name güncelleyin.

var doc = XDocument.Load(filepath); 

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

Kontrol orada XML kütüphanede bir yoldur, ama bir dize kullanabilirsiniz ve daha sonra dize üzerlerinde yerini yapabileceğini emin değilim bu example

+0

Yaptığınız kadar kolay gözükmüyor. Vardı varsayalım: XElement firstChild = xmlDoc.ToXDocument(). Root.Elements(). First(); benim xml için başlangıç ​​noktası olarak. AirlineList öğelerinin tümünü Airline – LogicDev

+0

yerine nasıl değiştiririm? Bir şey özledim mi? –

+0

Sorudan anladığım kadarıyla, bir 'AirLineList' öğesinin tüm alt öğelerini 'Havayolu' olarak yeniden adlandırmak istiyorsunuz. –

İlgili konular