如何从XML标签中获取值?

时间:2011-01-24 14:28:27

标签: c# xml

以下是我从DB收到的信息。它最初来自XML文件,但它存储在DB表中,我无法改变这种情况。我需要以这种方式工作,因为没有更多可用信息。

我在数据集中读取这些内容,我的行包含4种可能的方式....我使用了Value1,Value2,Value3,Value4 ....有没有办法轻松获取这些值。价值4是特殊的。我不知道它是怎么来的,但它看起来像一个标签...但我需要它。



<地点> \ n<差异无显着值1< / P> \ n< /地点>
< ACCEPTED_VARIANTES VALUE = \“Value2 \”/>
< PERIOD_DAY>值3< / PERIOD_DAY>
< AWARD_CRITERIA_DETAIL> \ n< VALUE4 /> \ n< / AWARD_CRITERIA_DETAIL>

所以结果应该是:
例如
 string location =“value1”;
string acceptedVariantes =“Value2”;
int period = Value3;
string AwarDetail =“Value4”;

1 个答案:

答案 0 :(得分: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个根元素。我假设您的数据库值格式正确。

在旁注中,此代码不受保护,这意味着如果您要查找的标记(例如<LOCATION>)不存在,您将获得异常({{1在尝试访问NullReferenceException字段时。

相反,你可以试试这个:

Value

当标签不存在时,这将避免此异常。