<div> 内的 <div> 标签使用 importXML Xpath 查询,在 Google 电子表格中
<div> tags inside <div> using importXML Xpath query, in Google Spreadsheet
我在 Google 文档中使用 Xpath 来获取 <div>
中的文本。
我想将 <div id="job_description">
内的文本保存在 Google 文档电子表格的一个单元格中,但它在单独的单元格中显示每个 <div>
。
<div id="job_description">
<div>
<strong>
Basic Purpose:
</strong>
<br></br>
</div>
<div>
Work closely with developers, product owners and Q…
<br></br>
</div>
<div>
The Test Analyst is accountable for the developmen…
<br></br>
</div>
<div>
<strong>
Duties and Responsibilities:
</strong>
</div>
<ul>
<li></li>
<li></li>
</ul>
<div>
<strong>
Requirements:
</strong>
<br></br>
</div>
<ul>
<li></li>
<li></li>
</ul>
</div>
图片: http://i.stack.imgur.com/K0mAY.png
这是我写的代码:
=IMPORTXML(E4,"//div[@id='job_description']")
你能帮我把 <div id="job_description">
中的所有文本(包括 <div>
<ul>
...)只放在一个单元格中吗?
目前我找到了一个解决方案,我会把它放在这里,以便其他人知道我的答案,但如果有任何其他解决方案,请告诉我们
我使用 JOIN
将单独的单元格 (L3:X3)
放入一个单元格中
=Trim(JOIN(" ",L3:X3))
使用 JOIN 是一个好的开始,但您可以将它变成一个操作。
您没有在要导入的页面中显示 URL,所以我只能用另一个页面给您举个例子。例如,如果您要导入 www.w3.org 并在 @class='event closed expand_block'
中查找 div
,请使用
=JOIN(CHAR(10),IMPORTXML("http://www.w3.org/","//div[@class='event closed expand_block']//text()"))
请注意,我还修改了 XPath 表达式://text()
确保只检索后代文本节点,即所有文本。
编辑:回复您的评论:
May I know what is CHAR(10) referring to?
当然可以。 CHAR
returns 一个字符,输入一个数字。在 CHAR(10)
的情况下,返回一个 newline 字符(我假设是因为
)。
公式中,CHAR(10)
作为JOIN
的第一个参数,是待连接对象的分隔符。
你也可以使用 regexreplace 来删除换行符,
=REGEXREPLACE(IMPORTXML(E4,"//div[@id='job_description']"),"\n","")
这应该为您将所有内容打包到一个单元格中。