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

PowerShell将网页内容转换为XmlDocument时解析失败问题咨询

[xml] 强制转换失败的核心原因

[xml] 类型对应的是标准XML文档解析器,要求输入内容必须严格符合XML语法规范,而你拿到的pinvoke.net页面是HTML文档,HTML的语法规则比XML宽松很多,二者的不兼容点就是报错的根源:

  • 布尔属性的语法差异:你遇到的第一个报错就来自这里。HTML支持无值的布尔属性,比如async、defer、checked、disabled这类属性,只要写了属性名就代表生效,不需要显式赋值。但XML要求所有属性必须遵循属性名="属性值"的格式,解析器读到<script async之后会等待=给async赋值,结果下一个token是src,因此直接抛出语法错误。
  • 还有很多其他HTML语法都无法被XML解析器兼容:
    • HTML允许部分单标签不闭合,比如<img>、<br>、<input>,XML要求所有标签必须成对出现,或者用自闭合语法<img />
    • HTML允许属性值不加引号,比如<div class=container>,XML要求所有属性值必须用引号包裹
    • HTML对标签名、属性名大小写不敏感,XML则严格区分大小写

额外建议

ConvertTo-Xml的作用是把.NET对象序列化为XML格式,不能用来修正不规范的HTML语法,因此用它处理原始页面内容不会解决解析问题。
如果要解析HTML页面,不需要强行转XML,Invoke-WebRequest返回的响应对象自带ParsedHtml属性,已经是解析完成的DOM对象,可以直接提取你需要的内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 11:36:04