2016-09-06 32 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"