2011-01-24 127 views
0

以下是我從數據庫中收到的信息。它最初來自XML文件,但是這存儲在數據庫表中,我無法改變這種情況。我需要這樣工作,因爲沒有更多的信息可用。如何從XML標籤獲取值?

我在數據集中讀取這些數據,我的行包含4種POSSIBLE方法....我使用了Value1,Value2,Value3,Value4 ....是否有方法可以輕鬆獲取這些值。值4是特殊的。我不知道它是怎麼來的,但它看起來像一個標籤......但我需要它。



< LOCATION> \ n               < P>值1 </P> \ n </LOCATION>
< ACCEPTED_VARIANTES VALUE = \ 「值2 \」/>
< PERIOD_DAY> Value3 </PERIOD_DAY>
< AWARD_CRITERIA_DETAIL> \ n             <值4 /> \ n             </AWARD_CRITERIA_DETAIL>

所以結果應該是:
例如
string location =「value1」;
string acceptedVariantes =「Value2」;
int period = Value3;
string 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>標籤正確地擁有它解析(在XML中總是隻接受1個根元素,我假設你的DB值格式正確)

請注意,這段代碼沒有被保護,這意味着如果你正在尋找一個標籤(如<LOCATION>實例)不存在時,嘗試訪問時會遇到異常(NullReferenceException) 0字段。

相反,你可以試試這個:

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

這將避免出現這種異常,當標籤不存在。

+0

這是偉大的謝謝.... – ethem 2011-01-24 16:07:30