以下のコードのようにxpath "// *"を使用すると、XML文書全体が取得されます。xpathの問題 - 結果なし
=IMPORTXML("https://api.bol.com/catalog/v4/search/?apikey=myapikey&format=xml&q=isbn","//*")
タイトルのような特定の要素を抽出することはできませんでした。私はXPathのドキュメントを見て、ダースというようなバリエーションを試しましたが、空の結果が得られています。タイトルを抽出するために正しいXpathは何でしょうか?
例のXMLドキュメントはここで見つけることができます: https://developers.bol.com/wp-content/pagina/handleiding/xml/search.xml
このXMLファイルは、それに関連するすべてのスタイル情報を持っているように見えていません。ドキュメントツリーを以下に示します。私はここでやっていることはまずXMLで引っ張ってimportdata
を使用している
=arrayformula(REGEXREPLACE(filter(index(IMPORTDATA("https://developers.bol.com/wp-content/pagina/handleiding/xml/search.xml"),,1),left(index(IMPORTDATA("https://developers.bol.com/wp-content/pagina/handleiding/xml/search.xml"),,1),7)="<Title>"),"<Title>|</Title>",""))
:
<SearchResults xmlns="http://api.bol.com/openapi-4.0.0">
<OriginalRequest>
<Category/>
</OriginalRequest>
<TotalResultSize>4875</TotalResultSize>
<Products>
<Id>9200000026739211</Id>
<EAN>5051888195819</EAN>
<GPC>dvd</GPC>
<Title>Harry Potter - Complete 8-Film Collection</Title>
<SpecsTag>Warner Home Video</SpecsTag>
<Summary>Dvd | 8 disks | mei 2014 | null</Summary>
<Rating>48</Rating>
<ShortDescription>
私はあなたのXPathクエリで(http://stackoverflow.com/a/26036309/11683)[名前空間を使用していない]されているので、それはだと確信しています。 – GSerg
Sergeありがとうございます。私はxpathについて学んでいます。前にxpathの一部として名前空間 "http://api.bol.com/openapi-4.0.0"を使用しようとしましたが、それを動作させることができませんでした。私はおそらく何か間違っている。この場合、 "http://api.bol.com/openapi-4.0.0"名前空間とTitle要素を使用してxpathをどのように構築するかの例を非常に高く評価します。 – dean2020
http://stackoverflow.com/questions/10981312/xml-element-has-namespace-my-xpath-does-not-work – Markus