【发布时间】:2017-07-12 07:48:24
【问题描述】:
我需要从公共网站 (http://www.tcmb.gov.tr/kurlar/201707/10072017.xml) 下载 XML 文件以获取汇率。 但是我有一个问题,因为 XML 包含一个 xml-stylesheet 处理指令。
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="isokur.xsl"?>
<Tarih_Date Tarih="07.07.2017" Date="07/07/2017" Bulten_No="2017/131" >
我将 WCF 自定义端口与 bLogical 的 webHttpBindng 和 BizTalk REST 入门工具包一起使用。一切正常,但是当我尝试解析传入的 xml 时,该处理指令出现错误。
System.Xml.XmlException:不支持处理指令(XML 声明除外)和 DTD。第 2 行,位置 2。
我不确定解决此问题的最佳方法是什么。我尝试遵循本指南WCF Errors on XML Deserialization,但是当我尝试使用 CreateBufferedCopy 方法访问消息内容时它仍然失败。
using (var readStream = new System.IO.MemoryStream())
{
using (var buffer = reply.CreateBufferedCopy(int.MaxValue))
{
buffer.WriteMessage(readStream);
}
readStream.Position = 0;
xdoc.Load(readStream);
}
有人知道我如何在不实际解析 XML 的情况下访问我的消息内容吗?我只是想找到一种方法来删除该行或让解析器忽略它。
【问题讨论】:
-
使用 CreateBufferedCopy() 方法时遇到的错误是什么?
-
与上述相同的错误。 System.Xml.XmlException:不支持处理指令(XML 声明除外)和 DTD。第 2 行,位置 2。
-
您在哪里执行该代码?在接收管道的解码部分?此外,该代码似乎没有删除样式表信息
-
这是我在 WCF 配置中使用的自定义客户端消息检查器。我只发布了部分代码,因为我什至没有达到可以删除该行的步骤。如果您想了解更多信息,请点击链接。那是我用来创建消息检查器的帖子。
标签: wcf biztalk biztalk-2010