2011-12-11 6 views
0

私は、ログイン名を検索してそのアカウントの関連データを見つけるために必要なログイン情報を持つXMLファイルを持っています。XMLで検索してその部分だけを読む

私が持っているXMLファイルは次のようになります。

<?xml version="1.0" encoding="UTF-8"?> 
<!--GroupTool2 bot settings file--> 
<!--Please do not make any manual changes to this file!--> 
<GroupTool2_Settings> 
    <SavedBots> 
    <BotName>Midday Ibor</BotName> 
    <BotPass>Password Hash</BotPass> 
    <BotMaster>Master Trapper</BotMaster> 
    <BotGroup>MyGroup</BotGroup> 
    <StartLocation>@Home/</StartLocation> 
    <DontSend>1</DontSend> 
    <DaysBetweenInvited>11</DaysBetweenInvited> 
    </SavedBots> 
    <SavedBots> 
    ... 
    </SavedBots> 
</GroupTool2_Settings> 

私が行うために必要なもの、BotNameのための文書を検索することができ、かつ唯一のそれとの間のデータを読み取るためには、BotNameに関連しています私は探しています。

しかし、途中でモエのトラブルがあります。 BotNameは必ずしも "FirstName LastName"として保存されているわけではなく、 "FirstName"と "FirstName.LastName"として保存することもできます。

変数は常に検索可能ですが、常にBotFNameおよびBotLname。保存されたBotNameがFirstNameのみである場合、使用されるLastNameは常に特定の名前になるので、LastNameはドキュメント内の名前を検索するときに単に破棄することができます。

私はまた、問題のXMLドキュメントの著者ではないため、検索を簡略化するために変更することはできません。

ただし、完全な解決策を探しているわけではありませんが、私はどこから始めるべきかを知っています。 ヘルプは評価されています。

/リカード

答えて

1

あなたは、LINQの-XML経由で要素を検索することができます。

​​
+0

ありがとう、私が探していたものでした。 これで、そのvarの2つのバージョンを作成する方法を理解するだけです。 var savedBots = doc.Descendants( "SavedBots")ここで(p => p.Element( "BotName"))Value.Replace( ''、 '。')==検索).FirstOrDefault(); 。 またはVARのsavedBots = doc.Descendants( "SavedBots")(P => p.Element( "BotName")の値==検索。).FirstOrDefault(); 名前がXMLファイルに保存される方法によって異なります。 – Rickard

+0

@Rickard - あなたは||を使用する必要があります(または)演算子。 ( '='検索 ')==検索).FirstOrDefault();}ここで、 ' – adatapost

+0

ああ、AVDにありがとう。 OR演算子を使用できるかどうかわかりませんでした。 ありがとうございます:) – Rickard

関連する問題