2016-03-28 37 views
2

私は以下のXML文書構造を持っています。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から直接ではなくどのように置き換えるのですか

ありがとう。

+0

。その後、XMLにシリアル化し直します。 – Casey

+0

これを実現するにはXPathを使用できます。 – JCM

+0

@Casey。子供の要素名タグはさまざまなので、タグの名前を知る方法はありません – LogicDev

答えて

2

すべてのAirlineList要素を選択して、Airlineに名前を変更します。

XmlLinqを使用して、子要素のためのNameを更新します。

var doc = XDocument.Load(filepath); 

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

チェックがXMLライブラリ内の方法ですが、あなたは文字列を使用して、文字列はそれらに代わる何ができるかどうかわからないこのexample

+0

あなたが作ったほど簡単には見えません。私が持っていたとしましょう:XElement firstChild = xmlDoc.ToXDocument()。Root.Elements()。First();私のXMLの出発点として。 AirlineListのすべての要素を航空会社に置き換えるには – LogicDev

+0

'example'リンクを確認しましたか?何か私が逃した? –

+0

私はこの質問から、AirLineListのすべての子要素の名前をAirlineに変更したいと考えています。 –

関連する問題