c# - QBXML:简单的 CustomerAdd "error when parsing"

标签 c# quickbooks qbxml

我已经向 QuickBooks Desktop 构建了一个非常简单的 XML 请求,并使用 QBSDK qb*XML 验证器对其进行了验证,这告诉我 XML 实例是有效的:

<?qbxml version="12.0"?>
<QBXML>
  <QBXMLMsgsRq onError="stopOnError">
    <CustomerAddRq requestID="12">
      <CustomerAdd>
        <Name>EDWARDS, JOHN</Name>
        <FirstName>John</FirstName>
      </CustomerAdd>
    </CustomerAddRq>
  </QBXMLMsgsRq>
</QBXML>

但是,我自己的 C# 应用程序和 SDK 提供的 qbXML 测试应用程序都失败,并显示无用的消息“QuickBooks 在解析提供的 XML 文本流时发现错误。”

我已通过 QuickBooks 成功授权该应用,并授予其额外的客户信息权限以确保万无一失。

根据 OSR,唯一必填字段是“名称”。我已经没有地方可以进行这项调查了。

我的处理方式有什么明显的错误吗?是否存在我没​​有看到的权限问题?

最佳答案

明白了! C# 的 XDocument.ToString() 删除 <?xml?>指示。我的另一个查询有效,因为我使用的是 XmlDocument.InnerXml,它没有这样做(但与 XDocument 相比看起来更丑)。我继续并连接:

doc.Declaration.ToString() + doc.ToString()

XDocument.ToString() drops XML Encoding Tag基本相同的问题

关于c# - QBXML:简单的 CustomerAdd "error when parsing",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19170030/

相关文章:

c# - 在 C# 中的线程之间传递数据的快速、内存高效的方法是什么?

Func 上的 C# 可选参数丢失泛型类型推断

quickbooks - Quickbooks是否需要与SDK安装在同一台机器上

sdk - qbfc/qbxml ReceivePaymentAdd 将付款分配到发票

c# - 有没有办法正确结束与 QuickBooks/QBW32.exe 的 session ,这样它就不会在后台运行?

c# - 如何将 Windows 窗体应用程序 (C#) 制作成单个 exe 文件?

c# - sql本地数据库的问题

c# - Azure Web应用程序问题: System. Runtime.InteropServices.COMException 80040154类未注册

ruby-on-rails - Rails 应用程序中的 QuickBooks 集成(参数拒绝 OAuth)

quickbooks - 如何使用 qbXML 将其他数据添加到 Quickbook