如何从XML标签获取值?
以下是我从数据库中收到的信息。它最初来自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”;
如果您使用的.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";
这将避免出现这种异常,当标签不存在。
这是伟大的谢谢.... – ethem 2011-01-24 16:07:30