QuickBooks Web Connector QBXML解析报错问题求助
问题描述
QBXML代码在QuickBooks美国版的QBXML验证器中无解析错误,但在QuickBooks Web Connector中触发验证报错,错误信息如下:
Requested validation for QB Web Connector (qwc), file has processing instruction indicating <?qbxml... obeying processing instruction
Error during validation: D, Conversion from string "Line: 3
LinePos: 8
Src Text: <" to type 'Double' is not valid.
涉事QBXML代码:
<?qbxml version="13.0"?> <QBXML> <QBXMLMsgsRq onError="continueOnError"> <CustomerQueryRq> <FullName>Perich Advertising</FullName> <OwnerID>0</OwnerID> </CustomerQueryRq> </QBXMLMsgsRq> </QBXML>
排查原因及解决方法
1. 混淆QWC配置文件与QBXML请求文件
QuickBooks Web Connector的核心作用是加载QWC配置文件(用于连接第三方Web服务),而非直接解析QBXML请求数据。如果直接将QBXML文件上传到Web Connector,必然触发格式验证错误。
- 解决:通过Web Connector连接到你的Web服务,由服务端返回QBXML请求,而非直接上传QBXML文件。
2. QBXML版本兼容性问题
Web Connector对QBXML版本的支持可能滞后于QuickBooks客户端,QBXML 13.0可能超出当前Web Connector的支持范围。
- 解决:将QBXML版本降至Web Connector兼容的版本(如12.0),修改首行代码为:
<?qbxml version="12.0"?>
3. 文件编码或换行符异常
Web Connector对文件编码(如UTF-8带BOM)、换行格式(Unix LF vs Windows CRLF)敏感,异常格式会导致解析时误读字符,引发类型转换错误。
- 解决:将QBXML保存为UTF-8无BOM格式,同时使用Windows CRLF换行符。
4. XML格式缩进不规范
部分Web Connector版本对XML节点的缩进格式要求严格,不规则的缩进可能触发解析逻辑异常。
- 解决:调整XML缩进为统一规范格式,示例:
<?qbxml version="13.0"?> <QBXML> <QBXMLMsgsRq onError="continueOnError"> <CustomerQueryRq> <FullName>Perich Advertising</FullName> <OwnerID>0</OwnerID> </CustomerQueryRq> </QBXMLMsgsRq> </QBXML>
内容的提问来源于stack exchange,提问作者user1887464

