在用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的處理指令即第一行的標籤前後帶問號的文檔聲明。