2016-09-06 4 views
0

私はWPすべてのインポートプラグインを使用してWordPressへインポートするXMLをマッピングしようとしているが、私は、この画像の「SCR」を得るために後にしようとしたいくつかの方法が行き詰まっ:イメージのURLのXPathを見つける方法は?

<content type="html"> 

<div align="center" class="post-cover"> 

    <img src="IMG.jpg"/> 

<ul> 
    <li></li> 
    <li></li> 
</ul> 

</div> 
</content> 

私は{content[1]/div[1]/img/@src}を試してみましたが、 {content[1]/div/img/@src}ですが、成功しません。

何とか実際に働いたのは{content[@type = "html"]}{content[1]}で、すべてのhtmlが<content>になっています。

type="html"を削除するなど、メモ帳でいくつかのものを大量に編集して、内側のdivを子として認識させることもできますが、すでに試したこともあります。残念ながら、コンテンツは単純なテキストのように扱われます。

+0

あなたのXPath式が正しく見えるので、私は問題はあなたがプラグインを使用している方法ですよね:: '{expr}は'で何をするのかだけ'//img/@src'

library(XML) html = '<content type="html"> <div align="center" class="post-cover"> <img src="IMG.jpg"/> <ul> <li></li> <li></li> </ul> </div> </content>' doc = htmlParse(html, asText=TRUE) src = xpathSApply(doc, '//img/@src') 

出力を使用XPath 'expr'の結果ですか?どんな種類の値(要素ノード、属性ノードなど)でも正常に動作することができますか? – LarsH

+0

値に制限はないと思います。しかし、大きな問題は、をテキストとして扱っていることです。私は子としてと別の木を持っており、それは完全に動作します。私の持っているイメージ:[https://d3vv6lp55qjaqc.cloudfront.net/items/143Y0j2r0X1h290a0X1D/Sem%20título.jpg] –

答えて

1

<content>の中にHTMLのように見えるものは実際にはテキストではありませんか? tree view image you linked toは、それが単なるテキストであることを示唆しています。 <<divは、実際には<という文字をエスケープしたもので、<divタグの先頭ではありません。あなたは、プレーンテキストエディタでXML/HTMLを表示した場合、あなたはおそらく、その場合<content> &lt;div align=...

が表示されます

<content>は、どの要素の子、単なるテキストを持っていません。そのようなノードがないため、XPathを使用してimg/@srcなどのノードを選択することはできません。 XPathをXPathに適用するには、XMLまたはHTMLに解析する方法を見つける必要があります。

+0

ありがとう。それはまさにプレーンテキストでした。おそらくそれが木を認識していなかったのかもしれません。コンテンツを変換しようとしましたが、無効なXMLがあります。しかし、助けてくれてありがとう。 –

+0

@HenriqueBarcelos:あなたはそれが**無効** XMLであると言うエラーを受けましたか?または整形式のXMLではない? * invalid *はDTDまたはスキーマを意味するため、ここでは適用されないようです。潜在的にこの問題を助けることができますが、おそらくより多くの情報を提供する必要があります。例えば。コンテンツを解析しようとしているコードを表示し、受信した正確なエラーメッセージを表示します(上に示したものと同じでない場合は、正式なXML/HTMLのようです)。 – LarsH

1

以下は、RおよびXMLライブラリを使用して動作します。

 src 
"IMG.jpg"