【问题标题】:XmlException: Data at the root level is invalidXmlException:根级别的数据无效
【发布时间】:2012-01-23 12:31:25
【问题描述】:

我有一个 PHP 客户端,它必须从使用 .NET 的服务中查询数据集。所以,我试图通过传递一个名为“查询”的 POST 字段来进行查询。在这个变量中,我有一个字符串版本的 XML 文档。现在发生的事情是,每当我将此“查询”传递给服务器时,它都会向我抛出异常“根级别的数据无效”。并指向我的 XML 文档的最后一行。

有什么建议吗?

这是 XML

<?xml version="1.0" encoding="utf-8"?>
<Predicate>
  <ComparisonPredicate name="like" isEnabled="True" id="" DistinctIndividualQueries="False">
    <FacetOperand reference="TriggeredAlerts.Alert.Name"/>
    <Comparison operation="like"/>
    <ValueOperand type="System.String" value="Sample"/>
  </ComparisonPredicate>
</Predicate>

这里是 var_dump()

string(335) "<?xml version="1.0" encoding="utf-8"?>
<Predicate>
  <ComparisonPredicate name="like" isEnabled="True" id="" DistinctIndividualQueries="False">
    <FacetOperand reference="TriggeredAlerts.Alert.Name"/>
    <Comparison operation="like"/>
    <ValueOperand type="System.String" value="TestAlert"/>
  </ComparisonPredicate>
</Predicate>
"

【问题讨论】:

  • 对我来说,在文档的根元素中闻起来像是缺少或无效的结束标记...您可以发布您尝试解析的 XML 文档吗?
  • @DaveRandom 添加了一个示例 XML
  • 我看不出文档有什么问题,您能显示包含您的 XML 的变量的 var_dump() 吗?
  • @DaveRandom 好了。我将其发布到 .NET 网络服务。
  • 也许this 会有所帮助?您的字符串可能包含 UTF-8 BOM。

标签: php asp.net .net xml


【解决方案1】:

我刚刚想通了,解决方案是使用 fsocksopen 而不是 curl。我对此没有准确的答案,但是当我使用 curl 时,它为我的内容添加了一些额外的东西;我的内容长度比实际预期的要长得多。

【讨论】:

    猜你喜欢
    • 2011-05-22
    • 1970-01-01
    • 2019-12-15
    • 2014-01-17
    • 2023-03-23
    • 1970-01-01
    • 2011-08-10
    相关资源
    最近更新 更多