2016-04-10 10 views
0

以下のコードのように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> 
+3

私はあなたのXPathクエリで(http://stackoverflow.com/a/26036309/11683)[名前空間を使用していない]されているので、それはだと確信しています。 – GSerg

+0

Sergeありがとうございます。私はxpathについて学んでいます。前にxpathの一部として名前空間 "http://api.bol.com/openapi-4.0.0"を使用しようとしましたが、それを動作させることができませんでした。私はおそらく何か間違っている。この場合、 "http://api.bol.com/openapi-4.0.0"名前空間とTitle要素を使用してxpathをどのように構築するかの例を非常に高く評価します。 – dean2020

+0

http://stackoverflow.com/questions/10981312/xml-element-has-namespace-my-xpath-does-not-work – Markus

答えて

0

あなたはロータリーの回避策のこの種を使用することができます。追加のデータを無視するには、INDEXの式でラップして、それをネストしてフィルタリングできるようにします。

enter image description here

私はその後、filter機能を使用して、私の条件は、タグイム選んで開始する必要があります行があることを指定し、この場合にはLeft機能を使用することにより<Title>です。私はその後、開始と終了タグを削除するREGEXREPLACEでクリーンアップ - あなたは値のみの上映を見るであろう。この時点で

enter image description here

は、すべてのタイトル行です。

enter image description here