You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PowerShell中对含HTML的字符串使用XPath?

在PowerShell中用XPath处理HTML字符串的解决方案

直接用XML解析器处理HTML会失败,因为HTML允许无引号属性等宽松语法,不符合XML的严格规范。你可以用专门的HTML解析库HtmlAgilityPack来实现,它完全支持XPath查询,不用修改已有的XPath语句。

步骤:

  1. 安装HtmlAgilityPack模块(首次运行):

    # 先信任PSGallery仓库(如果未信任)
    Set-PSRepository -Name PSGallery -InstallationPolicy Trusted
    # 安装模块到当前用户
    Install-Module -Name HtmlAgilityPack -Scope CurrentUser -Force
    
  2. 加载模块并解析HTML:

    # 导入模块
    Import-Module HtmlAgilityPack
    
    # 你的HTML字符串
    $html = "<html><body><div class=test>目标内容</div></body></html>"
    
    # 创建HTML文档对象并加载内容
    $htmlDoc = New-Object HtmlAgilityPack.HtmlDocument
    $htmlDoc.LoadHtml($html)
    
  3. 执行已有的XPath查询:

    # 示例:用你已有的XPath查找单个节点
    $targetNode = $htmlDoc.DocumentNode.SelectSingleNode("//div[@class='test']")
    # 获取节点文本
    Write-Output $targetNode.InnerText
    
    # 如果要查找多个节点,用SelectNodes遍历
    $nodes = $htmlDoc.DocumentNode.SelectNodes("//div")
    foreach ($node in $nodes) {
        Write-Output $node.InnerText
    }
    

说明:

HtmlAgilityPack专门针对HTML的宽松语法设计,能正确解析无引号属性、不规范闭合标签等情况,完全兼容你在ui.vision/selenium中使用的XPath语法,无需修改现有XPath语句。

内容的提问来源于stack exchange,提问作者jamacoe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 21:42:24