<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 字符(我假设是因为 &#10;)。

公式中,CHAR(10)作为JOIN的第一个参数,是待连接对象的分隔符

你也可以使用 regexreplace 来删除换行符,

=REGEXREPLACE(IMPORTXML(E4,"//div[@id='job_description']"),"\n","")

这应该为您将所有内容打包到一个单元格中。