在用api调试工具postman时,返回的xml数据报错:
Expected tag name.Got ‘?’ instead.(HTML doesn’t support processing instructions.)
如图:
<?xml version="1.0"?>
这xml第一行有什么错误呢?
错误的字面意思是:预期的标签名。用问号代替。(html不支持处理指令。)
先来熟悉XML的组成:
l 一个XML文件分为如下几部分内容:
• 文档声明
• 元素
• 属性
• 注释
• CDATA区 、特殊字符
• 处理指令(processing instruction)
XML语法-文档声明
l 在编写XML文档时,需要先使用文档声明,声明XML文档的类型。
l 最简单的声明语法:
<?xmlversion="1.0" ?>
l 用encoding属性说明文档的字符编码:
<?xmlversion="1.0" encoding="GB2312" ?>
l 用standalone属性说明文档是否独立:
<?xmlversion="1.0" encoding="GB2312" standalone="yes" ?>
其他的都不再赘述了,一般都知道。本错误的关键词就是处理指令
处理指令,简称PI (processing instruction)。处理指令用来指挥解析引擎如何解析XML文档内容。
例如,在XML文档中可以使用xml-stylesheet指令,通知XML解析引擎,应用css文件显示xml文档内容。
<?xml version="1.0"?>
发生错误,提示html不支持处理指令,那就对了,这个服务端api接口返回的文档是xml格式的数据,并不是html格式的,那么在用postman解析Body的时候,就要选择解析格式为XML。如图:
选择XML后就没有错误了。xml当然能够解析xml的处理指令即第一行的标签前后带问号的文档声明。