XML データを提供するリンクがあります。アプリケーションでデータを処理したい。
これを C# で処理するにはどうすればよいですか?
XmlReader を介して、または XML データをダウンロードする必要がありますか
最適な方法はどれですか?
このようにリンクからxmlドキュメントを取得できます
using (WebClient wc = new WebClient())
{
string xml = wc.DownloadString(url);
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml(xml);
}
いいえ、System.Xml.Linqを使用して xmlDoc を解析できます
// Create the query
var custs = from c in xmlDoc.Elements("Customers")
select c ;
// Execute the query
foreach (var customer in custs)
{
Console.WriteLine(customer);
}
XDocument
Linq スタイルで xml をクエリするのが非常に簡単になるので、私はそれを使用します。非常に特別なニーズや制約がある場合を除いて、これが断然最も便利だと思います。
最初にデータをxmlファイルにダウンロードしてから、このコードをxml読み取りに使用できます
XmlTextReader xmlreader = new XmlTextReader(Server.MapPath("filename.xml"));
DataSet ds = new DataSet();
ds.ReadXml(xmlreader);
DataTable dt = new DataTable();
dt = (DataTable)ds.Tables[0];
これがお役に立てば幸いです
XmlSerializer を使用して、受け取った文字列をオブジェクト グラフに逆シリアル化します。
public T Deserialize<T>(string xml)
{
T deserialized;
XmlSerializer xmlSerializer= new XmlSerializer(typeof(T));
using (StringReader stringReader = new StringReader(xml))
{
var xmlReaderSettings = new XmlReaderSettings(); //
using (XmlReader xmlReader = XmlReader.Create(stringReader, xmlReaderSettings))
{
xmlReader.MoveToContent();
deserialized = (T)xmlSerializer.Deserialize(xmlReader);
}
}
return deserialized;
}
次の画像を参照してください。
次の名前空間が必要です: System.Xml; XPath の仕組みを確認するには、ここにアクセスしてください: http://www.w3schools.com/xpath/default.asp