AWS3.0では読み込めていたのに、AWS4.0で読み込めない。たとえばこんなの。 (ちなみにVB.NETで作ってます) ————————————————- sMedia = objXml.SelectSingleNode(DNode & “/Media”).InnerText ————————————————- 受け取っているXMLに違いがあることが判明。
AWS3.0 ————————————————- <?xml version=”1.0″ encoding=”UTF-8″?> <ProductInfo xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” xsi:noNamespaceSchemaLocation=”http://xml.amazon.com/schemas3/dev-heavy.xsd”> ————————————————-
AWS4.0
————————————————-
<?xml version=”1.0″ encoding=”UTF-8″ ?>
<ItemSearchResponse xmlns=”http://webservices.amazon.com/AWSECommerceService/2005-10-05″>
————————————————-
具体的には、xsi:noNamespaceSchemaLocationが無いだけなのだがこれが読めなくしている原因らしい。 ちなみにこの先に指定されているdev-heavy.xsdとはこんなの
自分も今理解しようとしているところなので説明できないが、詳しく知りたい方は下記へ 第1回 XML超入門 第5回 DOMとXPath
で、結果としてこうなった ————————————————- Dim nsmgr1 As XmlNamespaceManager = New XmlNamespaceManager(objXml.NameTable) nsmgr1.AddNamespace(“smpl”, “http://webservices.amazon.com/AWSECommerceService/2005-10-05”) objXml.SelectSingleNode(“/smpl:ItemSearchResponse/smpl:Items/smpl:TotalResults”, nsmgr1).InnerText ————————————————-
Comments