首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用XML DataReader

使用XML DataReader
EN

Stack Overflow用户
提问于 2013-07-24 06:32:28
回答 2查看 7.5K关注 0票数 0

我使用SqlDataReaderScenarios表中读取数据,如下所示:

代码语言:javascript
复制
string Data = reader["ScenarioData"].ToString();

但是,现在我的ScenarioData字段是XML ntext。如何使用DataReader读取XML数据?例如,假设我想读取网址"http://google.com“。

场景数据字段:

代码语言:javascript
复制
<Scenario Name="Scenario1" Feature="Feature1">
<Steps>
<Step Url="http://google.com"></Step>
</Steps>
</Scenario>
EN

回答 2

Stack Overflow用户

发布于 2013-07-24 07:44:46

考虑到您已经在string类型的变量中拥有了XML,我建议使用以下方法:

代码语言:javascript
复制
SqlDataReader reader= cmd.ExecuteReader();
while (reader.Read())
{
    ..... 
    // you have already an xml string stocked in data
    string data = (string)reader["ScenarioData"];
    // parse it
    var doc = XDocument.Parse(data);
    var step = doc.Descendants("Step").Attributes().FirstOrDefault();
    var url = step != null ? step.Value : String.Empty;
    ......
}

还有一种使用SqlXml读取Xml的方法,您可以在here中找到更多信息

票数 4
EN

Stack Overflow用户

发布于 2013-07-24 07:38:46

代码语言:javascript
复制
using System.Xml.Linq;

var xml = XElement.Parse(reader["ScenarioData"].ToString());

//assuming there can be multiple <step> elements
var steps = xml.Element("Scenario").Element("Steps").Elements("Step");
var url = steps.First().Attribute("Url").Value;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17822144

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档