2011-01-24 23 views
0

以下はDBから受け取った情報です。これはもともとXMLファイルからのものですが、これはDBテーブルに格納されており、状況を変更することはできません。私はこれらの方法で作業する必要があります。利用可能な情報がないからです。XMLタグから値を取得する方法は?

私はこれらのデータセットを読み込み、行には4つの可能な方法があります。私はValue1、Value2、Value3、Value4を使用しました。これらの値を簡単に取得する方法はありますか?値4は特別です。私はそれがどうなるかわからないが、それはタグのように見える...しかし、私はそれが必要です。



< LOCATION> \ N               < P>値1 </P> \ N </LOCATION>
< ACCEPTED_VARIANTES VALUE = \ "値2 \" />
< PERIOD_DAY>値3 </PERIOD_DAY>
< AWARD_CRITERIA_DETAIL> \ N             < Value4 /> \ N             </AWARD_CRITERIA_DETAIL>

ので、結果は次のようになります。例えば

文字列の場所= "value1";
文字列acceptedVariantes = "Value2";
int period = Value3;
文字列AwarDetail = "Value4";

答えて

4

あなたは.NETを使用している場合は> = 3.5、あなたが値を取得するために、LINQ to SQLのを使用することができ、ここでの例です:

XElement elem = XElement.Parse("<xml><LOCATION><P>Value1</P></LOCATION><ACCEPTED_VARIANTES VALUE=\"Value2\"/><PERIOD_DAY>Value3</PERIOD_DAY><AWARD_CRITERIA_DETAIL><Value4/></AWARD_CRITERIA_DETAIL></xml>"); 

var Value1 = elem.Element("LOCATION").Value; 
var Value2 = elem.Element("ACCEPTED_VARIANTES").Attribute("VALUE").Value; 
var Value3 = elem.Element("PERIOD_DAY").Value; 
var Value4 = elem.Element("AWARD_CRITERIA_DETAIL").Element("Value4").Value; 

注:私はそれを正しく持つようにXML文字列の周りに<xml>...</xml>タグを追加しましたあなたのDB値が正しくフォーマットされていると仮定します。

このコードは保護されていません。つまり、あなたが探しているタグ(<LOCATION>インスタンス)が存在しない場合は、にアクセスしようとすると例外(NullReferenceException)が表示されます0フィールド。

代わりに、あなたはこれを試すことができます:タグが存在しない場合、この例外を回避します

var val1 = elem.Element("LOCATION"); 
var Value1 = val1 != null ? val1.Value : "no data found"; 

を。

+0

ありがとうございました.... – ethem

+0

歓迎します:-) – Shimrod

関連する問題