访问HTMLRewriter中的嵌套元素-CloudflareWorkers

我必须在 Cloudflare 工作器中使用HTMLRewriter访问嵌套元素。

例子

<div>
   <div>Title</div>
   <div>9,99</div>
</div>
<div>
   <div>Title</div>
</div>

我正在考虑使用多个 .on() 但订单没有保留,因为缺少一些 .price 并且我无法正确合并 codeHandler 和 PriceHandler 的结果

await new HTMLRewriter().on("[data-code]", codeHandler)
                        .on(".price", priceHandler)
                        .transform(response).arrayBuffer()

我正在考虑多次迭代 new HTMLRewriter() 但可读流被锁定。

当前代码

工人

class codeHandler {
    constructor() {
        this.values = []
    }

    element(element) {
        let data = {
            code: element.getAttribute("data-code"),
            title: element.querySelector(".title").innerText, <--
            price: element.querySelector(".price").innerText, <--- HERE
        }
        this.values.push( data )
    }
}


const url = "https://www.example.com"

async function handleRequest() {

  const response = await fetch(url)

   const codeHandler = new codeHandler()
   await new HTMLRewriter().on("[data-code]", codeHandler).transform(response).arrayBuffer()
    
    
   console.log(codeHandler.values)

    const json = JSON.stringify(codeHandler.values, null, 2)


    return new Response(json, {
        headers: {
        "content-type": "application/json;charset=UTF-8"
        }
    })  

}

addEventListener("fetch", event => {
  return event.respondWith(handleRequest())
})

以上是访问HTMLRewriter中的嵌套元素-CloudflareWorkers的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>