XPath - 获取包含HTML标记的数据

时间:2016-09-04 13:51:18

标签: html wordpress xpath

我有使用Web Scrapper工具的Wordpress(后台的PHP),它使用XPath来检索来自其他网站的数据。

我遇到了一个问题,我得到了所有需要的数据,但这些数据是从HTML标签中删除的。

我正在使用的XPath公式:

//table/tbody/tr[td//text()[contains(., 'FFF')]]

我正在使用的数据:

<table id="myTable">
            <thead>
                <tr>
                    <th>#</th>
                    <th>First</th>
                    <th>Second</th>
                    <th>G</th>
                    <th>Z</th>
                    <th>C</th>
                </tr>
            </thead>
            <tbody>
                    <tr>
                        <td>1.</td>
                        <td>D</td>
                        <td>FFF</td>
                        <td class="txt-c">6</td>
                        <td class="txt-c">0</td>
                        <td class="txt-c">0</td>
                    </tr>
                    <tr>
                        <td>2.</td>
                        <td>C</td>
                        <td>YYY</td>
                        <td class="txt-c">4</td>
                        <td class="txt-c">1</td>
                        <td class="txt-c">0</td>
                    </tr>
                    <tr>
                        <td>3.</td>
                        <td>B</td>
                        <td>ZZZ</td>
                        <td class="txt-c">4</td>
                        <td class="txt-c">0</td>
                        <td class="txt-c">0</td>
                    </tr>
                    <tr>
                        <td>4.</td>
                        <td>A</td>
                        <td>FFF</td>
                        <td class="txt-c">3</td>
                        <td class="txt-c">0</td>
                        <td class="txt-c">0</td>
                    </tr>
                </tbody>
            </table>

结果我得到了:

1. D FFF 6 0 0 4. A FFF 3 0 0 

我需要的结果:

    <tr>
                        <td>1.</td>
                        <td>D</td>
                        <td>FFF</td>
                        <td class="txt-c">6</td>
                        <td class="txt-c">0</td>
                        <td class="txt-c">0</td>
                    </tr>

<tr>
                        <td>4.</td>
                        <td>A</td>
                        <td>FFF</td>
                        <td class="txt-c">3</td>
                        <td class="txt-c">0</td>
                        <td class="txt-c">0</td>
                    </tr>

我正在使用的工具:https://wordpress.org/plugins/wp-web-scrapper/

我在wordpress中使用的确切短代码(网址已更改):

[wpws url='https://myweb.comm' query='%2F%2Ftable%2Ftbody%2Ftr%5Btd%2F%2Ftext()%5Bcontains(.%2C%20%27FFF%27)%5D%5D' output='html' query_type='xpath' querydecode='1']

我需要的只是经过过滤的HTML标记表格。

感谢您的回答。

1 个答案:

答案 0 :(得分:0)

感谢您的想法。

我终于成功了。该插件本身工作正常。只有问题是在使用短代码的Wordpress帖子中缺少表对标签。

<强>解决方案:

<table>
[wpws url='https://yoururl.com' query='your query' output='html' query_type='xpath']
</table>