2012-06-12 56 views
0

我正在使用.Net和Oracle。我在我的表中有一個XML數據。我的數據是這樣的..分隔XML值

<Goals> 
    <Reg> 
     <Min>75</Min> 
     <Max>90</Max> 
    </Reg> 
    <Sale> 
     <Min>75</Min> 
     <Max>90</Max> 
    </Sale> 
</Goals> 

在表中還有一些其他列。我需要獲取這個,我應該在gridview中綁定這個值。我的gridview將爲這些XML有單獨的列。 Reg Min,Reg Max,Sale Min,Sale Max等。

我應該如何區分這個XML值?

回答

0

你也可以做到這一點的DB:

select t.id, 
     xmltype(t.xmltext) .extract('//Reg/Min/text()').getstringval() reg_min, 
     xmltype(t.xmltext) .extract('//Reg/Max/text()').getstringval() reg_max, 
     xmltype(t.xmltext) .extract('//Sale/Min/text()').getstringval() sale_min, 
     xmltype(t.xmltext) .extract('//Sale/Max/text()').getstringval() sale_max 
    from table_name t 

我用table_name作爲表名,並xmltext當保持你的XML列名(假設這是一個字符串)

+0

通過使用這個查詢我沒有得到th值在分鐘,reg最大,銷售mi n和銷售最大列... SELECT T.ID, XMLTYPE(T.DEFAULT_VALUES).EXTRACT('// Reg/min/text()')。GETSTRINGVAL()REG_MIN, XMLTYPE(T.DEFAULT_VALUES).EXTRACT ('// Reg/max/text()')。GETSTRINGVAL()REG_MAX, XMLTYPE(T.DEFAULT_VALUES).EXTRACT('// Sale/min/text()')。GETSTRINGVAL()SALE_MIN, XMLTYPE T.'DEFAULT_VALUES).EXTRACT('// Sale/max/text()')。GETSTRINGVAL()SALE_MAX FROM TableName T – RobinHood

+0

也許是因爲我寫了'min'' max'而不是'Min'' Max'。我更新了我的答案,現在試試 –

+0

完全正確..我不知道那..感謝很多。 – RobinHood

1

使用Linq to XML

XDocument doc = XDocument.Parse(str); 
string max = (string)doc.Root.Element("Reg").Element("Max");//return Max 
+0

非常感謝您。您也可以正常工作... – RobinHood