使用XPATH

时间:2019-03-02 00:54:16

标签: xpath

我有以下div

<div data-dmid="product-detail-page" itemscope="" itemtype="http://schema.org/Product" itemid="3600542198158">

我要从中提取itemid-> 3600542198158

我正在使用以下Xpath,但是它不返回任何值:

//div[@data-dmid='product-detail-page']/@itemid

请有人建议如何正确为其构建Xpath


不幸的是,我不得不更新我的问题。

我正在使用Firefox检查工具查找代码。 通过检查工具查看与输出不同的html源代码,我将得到以下有趣的部分:

<div class="onCanvas content-with-footer">

    <div id="container-main" class="content-main">
        <div data-dmid="uvp-banner-container" style="height: 54px; width: 100%"></div>
            <script>
                document.addEventListener("DOMContentLoaded", function() {
                    var props = {};
                    ReactInit.initReactComponent("contentViewService", "UvpBannerContainer", props, document.querySelector("[data-dmid='uvp-banner-container']"));
                });
           </script>
        <div id="react-product-detail-page"></div>
<script>
var props = {
    gtin: 3600542198158,
    locale: dmSettings.localeLanguage
};
ReactInit.initReactComponent("product-detail-page", "ProductDetailPage", props, document.getElementById("react-product-detail-page"));

                           

$(document).ready(function () {
            var props = {
                locale: dmSettings.localeLanguage
            };

        ReactInit.initReactComponent("product-detail-page", "PriceLegend", props, document.getElementById("react-price-legend"));
    });
</script>

我需要获取第二个脚本的gtin(纯文本编号)。

我想在抓取工具中使用xpath,为什么只有纯xpath代码对我有用。

再次感谢您,请原谅我先前的不完全正确的问题。

2 个答案:

答案 0 :(得分:0)

我假设您不介意JavaScript和jQuery,因为您未指定:

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div data-dmid="product-detail-page" itemscope="" itemtype="http://schema.org/Product" itemid="3600542198158">
Categories        time a        time b      
Category 1        xxx.xx        xxx.xx
Category 2        xxx.xx        xxx.xx
.                 .             .
.                 .             .
.                 .             .
Category n        xxx.xx        xxx.xx

答案 1 :(得分:0)

我在Stackoverflow上的另一篇文章的帮助下得到了答案。

Reading a javascript variable's value

我更新的问题的正确代码是

substring-before(substring-after(//div[@class='onCanvas content-with-footer']//script[2][contains(.,'gtin')]/text(), "gtin: "), ",")

谢谢您的帮助。