スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

[C#] Amazonから貰ったXMLでXPathを使ってみる

C#の勉強がてらAWSECommerceServiceで取得したXMLから欲しいノードだけ抜き出そうと思ってXPath書いてみたんだけども
なぜか0件。

うーむ・・

と、悩んでたらすっかりネームスペースを忘れてることに気がついたw

xmlnsが定義してあるXMLの場合はちゃんとネームスペース指定しないと取得できないんでした。
C#とかカンケーなくXMLの基本でつまづいてた…orz
AmazonからくるXMLの頭はこんなんなってます。






ちゃんとネームスペースが指定されているのでXPath書くにもネームスペースを含んだ形式にしないとなにもとれません。

たとえばC#で書くとこんな感じ。


WebRequest request = HttpWebRequest.Create(url);
WebResponse response = request.GetResponse();
XmlDocument doc = new XmlDocument();
doc.Load(response.GetResponseStream());

XmlNamespaceManager NsManager = new XmlNamespaceManager(doc.NameTable);
NsManager.AddNamespace("aws", "http://webservices.amazon.com/AWSECommerceService/2009-07-01");

XmlNodeList TitleNode = doc.SelectNodes("/aws:ItemSearchResponse/aws:Items/aws:Item/aws:ItemAttributes/aws:Title", NsManager);


つーか、久々にC#触ったけど楽でいいなー。
C#ってか.NET Frameworkの力もデカイ。大抵のものは用意してある。
速度的には…やっぱ遅いのかな?
あんまりデカイアプリ作ってないからわからないけど。どうなんだろ?


関連記事

tag : Amazon AWS XML


comment

Secret

 

宿・ホテル予約ならじゃらんnet
Ads
プロフィール

はち

はち

最新記事
最新コメント
最新トラックバック
カテゴリ
気になる商品
検索フォーム
RSSリンクの表示
リンク
タグクラウド
QRコード
QRコード
月別アーカイブ
カウンター
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。