如何查找图像网址的XPath?

时间:2016-09-06 16:29:39

标签: wordpress xpath

我正在尝试使用WP All Import插件映射XML以导入到Wordpress,但在尝试了几种方法来获取此图像的“scr”后我陷入困境:

<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",强制它将内部div识别为孩子,但这也是我已经尝试过的东西。不幸的是,内容被视为简单的文本。

2 个答案:

答案 0 :(得分:1)

你确定<content>中看起来像HTML的东西实际上只是文字吗? tree view image you linked to表明它只是文字:例如<中的<div实际上是一个转义的文字<,而不是<div代码的开头。

如果您在纯文本编辑器中查看XML / HTML,您可能会看到<content> &lt;div align=...

在这种情况下,<content>没有元素子元素,只有纯文本。您无法使用XPath从中选择img/@src之类的节点,因为它没有任何此类节点。如果要对其应用XPath,则必须找到将其解析为XML或HTML的方法。

答案 1 :(得分:1)

以下使用R和XML库工作。刚刚使用了<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

'//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')