php - qbxml 中的特殊字符

标签 php quickbooks

最近几天,我注意到 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/

相关文章:

quickbooks - 如何从桌面应用程序在线连接到 QuickBooks

php - 如何打印 Magento 中的所有查询?

php - 拉维尔 |重用查询变量而不是重复查询

php - Drupal 7 views_embed_view 和模板

Quickbooks Online - 使用电子邮件的客户查询 (QBXML)

asp.net - 将 ASP.NET 应用程序连接到 QuickBooks Online Edition

php - 如何使用 QuickBooks_IPP 显示发票中一行中的每个项目?

php - 只能插入到mysql表一次

javascript - 在 XMLHTTPRequest 刷新之间保存 div 可见性状态

c# - QBO/.NET SDK [Quickbooks Online] - 如何删除空发票行项目?