qbxml中的特殊字符
Special characters inside qbxml
最近几天我注意到即使 qbxml 验证器说 xml 有效,Quickbooks 也不接受 em 破折号。
问题是我有如下字符串:
100 W. Randolph – Ste.4-100
当我尝试使用 php devkit 迁移此客户时,我遇到了这个问题:
QuickBooks 在解析提供的 XML 文本流时发现错误
我尝试将这个 em dash 直接输入到 quickbooks enterprise (v19) 并且它有效。
我不确定这里发生了什么。我如何在 qbxml 中提交这个 em dash 以便 quickbooks 可以接受它。
您必须对特殊字符进行编码才能将它们发送到 QuickBooks。例如如果您要发送此邮件:
<Name>1234567 Steel Décor</Name>
<CompanyName>Steel Décor</CompanyName>
您需要发送:
<Name>1234567 Steel Décor</Name>
<CompanyName>Steel Décor</CompanyName>
如果您正在使用这个 PHP 库:
然后你可以这样做:
$encoded = QuickBooks_Cast::cast(QUICKBOOKS_ADD_CUSTOMER, 'FullName', $raw);
根据此处的示例:
您可以使用 CDATA,
这些是您可能见过的奇怪标签:
<Name><![CDATA[1234567 Steel Décor]]></Name>
Cdata 基本上表示字符数据,通常是将 HTML 和其他特殊字符放入 XML 文件中的一种方式。它告诉 XML 解析器忽略此内容并将其视为纯文本(基本上)
这是一个 link 维基页面,其中包含更多详细信息,然后我想输入它的历史等。
https://en.wikipedia.org/wiki/CDATA
In an XML document or external parsed entity, a CDATA section is a section of element content that is marked for the parser to interpret purely as textual data, not as markup.
如果您使用 XMLWriter 库制作 XML 有 2 个函数专门用于此:
https://www.php.net/manual/en/ref.xmlwriter.php
更具体地说
https://www.php.net/manual/en/function.xmlwriter-start-cdata.php
https://www.php.net/manual/en/function.xmlwriter-end-cdata.php
我过去用过很多次,它们对大多数特殊字符等都非常有效...
干杯。
最近几天我注意到即使 qbxml 验证器说 xml 有效,Quickbooks 也不接受 em 破折号。
问题是我有如下字符串:
100 W. Randolph – Ste.4-100
当我尝试使用 php devkit 迁移此客户时,我遇到了这个问题:
QuickBooks 在解析提供的 XML 文本流时发现错误
我尝试将这个 em dash 直接输入到 quickbooks enterprise (v19) 并且它有效。
我不确定这里发生了什么。我如何在 qbxml 中提交这个 em dash 以便 quickbooks 可以接受它。
您必须对特殊字符进行编码才能将它们发送到 QuickBooks。例如如果您要发送此邮件:
<Name>1234567 Steel Décor</Name>
<CompanyName>Steel Décor</CompanyName>
您需要发送:
<Name>1234567 Steel Décor</Name>
<CompanyName>Steel Décor</CompanyName>
如果您正在使用这个 PHP 库:
然后你可以这样做:
$encoded = QuickBooks_Cast::cast(QUICKBOOKS_ADD_CUSTOMER, 'FullName', $raw);
根据此处的示例:
您可以使用 CDATA,
这些是您可能见过的奇怪标签:
<Name><![CDATA[1234567 Steel Décor]]></Name>
Cdata 基本上表示字符数据,通常是将 HTML 和其他特殊字符放入 XML 文件中的一种方式。它告诉 XML 解析器忽略此内容并将其视为纯文本(基本上)
这是一个 link 维基页面,其中包含更多详细信息,然后我想输入它的历史等。
https://en.wikipedia.org/wiki/CDATA
In an XML document or external parsed entity, a CDATA section is a section of element content that is marked for the parser to interpret purely as textual data, not as markup.
如果您使用 XMLWriter 库制作 XML 有 2 个函数专门用于此:
https://www.php.net/manual/en/ref.xmlwriter.php
更具体地说
https://www.php.net/manual/en/function.xmlwriter-start-cdata.php
https://www.php.net/manual/en/function.xmlwriter-end-cdata.php
我过去用过很多次,它们对大多数特殊字符等都非常有效...
干杯。