2016-09-06 89 views
0

我試圖映射XML使用WP全部導入插件導入到WordPress的,但我被困後,嘗試了幾種方法來獲得這一形象的「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]},它顯示了<content>中的所有html。

如果有必要,我可以批量編輯一些記事本的東西,如刪除type="html",強制它認識內部divs作爲孩子,但它也是我已經嘗試過的東西。不幸的是,內容被視爲簡單的文本。

+0

XPath表達式看起來是正確的,所以我會想這個問題是您如何使用插件:是什麼'{expr}的'做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應用於XML,您必須找到將其解析爲XML或HTML的方法。

+0

謝謝。這完全是純文本。也許這就是爲什麼它不識別樹。我試圖轉換內容,但是我得到了無效的XML。但感謝您的幫助。 –

+0

@HenriqueBarcelos:你有錯誤說它是**無效** XML?還是沒有形成良好的XML?由於* invalid *意味着DTD或Schema,這似乎不適用於此。我們可能會幫助您解決此問題,但您可能需要提供更多信息。例如。顯示試圖解析內容的代碼,並顯示接收到的確切錯誤消息(以及確切的內容,如果與上面顯示的不一樣,看起來是格式良好的XML/HTML)。 – LarsH

1

以下使用R和XML庫進行工作。只是用'//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') 

輸出:

 src 
"IMG.jpg"