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

XML W3C测试用例017a.xml的处理指令解析疑问

问题解答

先看目标XML内容:

<!DOCTYPE doc [<!ELEMENT doc (#PCDATA)>]><doc><?pi some data ? > <??></doc>

根据XML 1.0规范中处理指令(PI)的定义:PI必须以<?开头,以?>作为无空格的结束标记,中间包含PI目标和可选数据,数据部分不能包含?>序列。

回到这段XML的解析逻辑:

  • 第一个<?启动PI,目标为pi,后续的? >是带空格的?和>,不符合PI的结束标记要求,因此解析器会继续将后续内容(包括空格、<?)纳入PI的数据部分,直到遇到片段末尾真正的?>。
  • 不存在第二个独立的PI,因为中间的<?是第一个PI数据的一部分,并未触发新PI的解析(新PI需要前一个PI正常结束)。

所以你的假设是正确的,解析后得到一个处理指令,其数据为some data ? > <?。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 02:00:15