0

私はテーブルSqlDataReaderからデータを読み取るためにを使用していました:Scenarios

string Data = reader["ScenarioData"].ToString();

しかし、今私のScenarioDataフィールドは XMLntextです。を使用して XML データを読み取るにはどうすればよいDataReaderですか? たとえば、URL " http://google.com " を読みたいとしましょう。

シナリオ データ フィールド:

<Scenario Name="Scenario1" Feature="Feature1">
<Steps>
<Step Url="http://google.com"></Step>
</Steps>
</Scenario>
4

2 に答える 2

4

既に XML が文字列型の変数にあるという事実を考えると、次のことをお勧めします。

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 を読み取る方法もあります。詳細については、こちらを参照してください。

于 2013-07-23T23:44:45.893 に答える
0
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;
于 2013-07-23T23:38:46.117 に答える