2011-01-24 98 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