最近几天,我注意到 Quickbooks 不会接受破折号,即使 qbxml 验证器说 xml 有效。
问题是我有一个如下所示的字符串:
100 W.伦道夫 – Ste.4-100
当我尝试使用 php devkit 迁移该客户时,我遇到了以下问题:
QuickBooks 在解析提供的 XML 文本流时发现错误
我尝试将这个em dash直接输入到quickbooks enterprise (v19)并且它起作用了。
我不确定这里发生了什么。我如何在 qbxml 中提交这个短划线,以便 Quickbooks 可以接受它。
最佳答案
您可以使用 CDATA,
这些是您可能见过的奇怪标签:
<Name><![CDATA[1234567 Steel Décor]]></Name>
Cdata 基本上意味着字符数据,通常是一种将 HTML 和其他特殊字符等内容放入 XML 文件中的方法。它告诉 XML 解析器忽略此内容并将其视为纯文本(基本上)
这里是 wiki 页面的链接,其中包含更多详细信息,然后我想输入,例如它的历史等。
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
我过去曾多次使用过这些,它们对于大多数特殊字符等都非常有效......
干杯。
关于php - qbxml 中的特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55483132/