我用C++得程序调C#写的soap服务,有时会出错,可是我看xml没什么问题啊,拜托哪位大人帮我一下!C++:hr=Reader.CreateInstance(__uuidof(SoapReader30));
这句出错错误描述:Soap error: XML Parser failed at linenumber 1, lineposition 467, reason is: Illegal xml character.传递得xml文件:
<?xml version="1.0" encoding="utf-8" ?>
- <TopicPage xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://tempuri.org/">
<m_strBBSName>论坛</m_strBBSName>
<m_nCurrentPage>1</m_nCurrentPage>
<m_nTotalPages>1</m_nTotalPages>
- <m_Topics>
- <Topic>
<m_nBoardID>49</m_nBoardID>
<m_nTopicID>3606</m_nTopicID>
<m_strTitle>同事的女儿</m_strTitle>
</Topic>
- <Topic>
<m_nBoardID>49</m_nBoardID>
<m_nTopicID>3621</m_nTopicID>
<m_strTitle>HOHO~~~~偶也来几张撒`都是拿自己6600照的哦!</m_strTitle>
</Topic>
- <Topic>
<m_nBoardID>49</m_nBoardID>
<m_nTopicID>4168</m_nTopicID>
<m_strTitle>*¨︱冬天の故事. 〣淘*tao°〣__{新人报道哇……</m_strTitle>
</Topic>
- <Topic>
<m_nBoardID>49</m_nBoardID>
<m_nTopicID>3782</m_nTopicID>
<m_strTitle>同事的女儿之二</m_strTitle>
</Topic>
- <Topic>
<m_nBoardID>49</m_nBoardID>
<m_nTopicID>3804</m_nTopicID>
<m_strTitle>火辣劲爆的地下车模</m_strTitle>
</Topic>
- <Topic>
<m_nBoardID>49</m_nBoardID>
<m_nTopicID>3674</m_nTopicID>
<m_strTitle>[分享]使用Nokia 7610拍照~</m_strTitle>
</Topic>
- <Topic>
<m_nBoardID>49</m_nBoardID>
<m_nTopicID>3594</m_nTopicID>
<m_strTitle>手机偷拍数学系漂亮MM</m_strTitle>
</Topic>
- <Topic>
<m_nBoardID>49</m_nBoardID>
<m_nTopicID>4315</m_nTopicID>
<m_strTitle>重庆建院男生5栋309寝室全体员工</m_strTitle>
</Topic>
- <Topic>
<m_nBoardID>49</m_nBoardID>
<m_nTopicID>3605</m_nTopicID>
<m_strTitle>哈哈。试贴几张。支持新版块。</m_strTitle>
</Topic>
- <Topic>
<m_nBoardID>49</m_nBoardID>
<m_nTopicID>3596</m_nTopicID>
<m_strTitle>看看N830的百万象素1CCD的手机拍摄的漂亮模特。</m_strTitle>
</Topic>
- <Topic>
<m_nBoardID>49</m_nBoardID>
<m_nTopicID>3675</m_nTopicID>
<m_strTitle>我的一个朋友用自己的7610拍的!</m_strTitle>
</Topic>
- <Topic>
<m_nBoardID>49</m_nBoardID>
<m_nTopicID>3663</m_nTopicID>
<m_strTitle>十二星座</m_strTitle>
</Topic>
</m_Topics>
</TopicPage>拜托了!
这句出错错误描述:Soap error: XML Parser failed at linenumber 1, lineposition 467, reason is: Illegal xml character.传递得xml文件:
<?xml version="1.0" encoding="utf-8" ?>
- <TopicPage xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://tempuri.org/">
<m_strBBSName>论坛</m_strBBSName>
<m_nCurrentPage>1</m_nCurrentPage>
<m_nTotalPages>1</m_nTotalPages>
- <m_Topics>
- <Topic>
<m_nBoardID>49</m_nBoardID>
<m_nTopicID>3606</m_nTopicID>
<m_strTitle>同事的女儿</m_strTitle>
</Topic>
- <Topic>
<m_nBoardID>49</m_nBoardID>
<m_nTopicID>3621</m_nTopicID>
<m_strTitle>HOHO~~~~偶也来几张撒`都是拿自己6600照的哦!</m_strTitle>
</Topic>
- <Topic>
<m_nBoardID>49</m_nBoardID>
<m_nTopicID>4168</m_nTopicID>
<m_strTitle>*¨︱冬天の故事. 〣淘*tao°〣__{新人报道哇……</m_strTitle>
</Topic>
- <Topic>
<m_nBoardID>49</m_nBoardID>
<m_nTopicID>3782</m_nTopicID>
<m_strTitle>同事的女儿之二</m_strTitle>
</Topic>
- <Topic>
<m_nBoardID>49</m_nBoardID>
<m_nTopicID>3804</m_nTopicID>
<m_strTitle>火辣劲爆的地下车模</m_strTitle>
</Topic>
- <Topic>
<m_nBoardID>49</m_nBoardID>
<m_nTopicID>3674</m_nTopicID>
<m_strTitle>[分享]使用Nokia 7610拍照~</m_strTitle>
</Topic>
- <Topic>
<m_nBoardID>49</m_nBoardID>
<m_nTopicID>3594</m_nTopicID>
<m_strTitle>手机偷拍数学系漂亮MM</m_strTitle>
</Topic>
- <Topic>
<m_nBoardID>49</m_nBoardID>
<m_nTopicID>4315</m_nTopicID>
<m_strTitle>重庆建院男生5栋309寝室全体员工</m_strTitle>
</Topic>
- <Topic>
<m_nBoardID>49</m_nBoardID>
<m_nTopicID>3605</m_nTopicID>
<m_strTitle>哈哈。试贴几张。支持新版块。</m_strTitle>
</Topic>
- <Topic>
<m_nBoardID>49</m_nBoardID>
<m_nTopicID>3596</m_nTopicID>
<m_strTitle>看看N830的百万象素1CCD的手机拍摄的漂亮模特。</m_strTitle>
</Topic>
- <Topic>
<m_nBoardID>49</m_nBoardID>
<m_nTopicID>3675</m_nTopicID>
<m_strTitle>我的一个朋友用自己的7610拍的!</m_strTitle>
</Topic>
- <Topic>
<m_nBoardID>49</m_nBoardID>
<m_nTopicID>3663</m_nTopicID>
<m_strTitle>十二星座</m_strTitle>
</Topic>
</m_Topics>
</TopicPage>拜托了!
如果你是gb,则为<?xml version="1.0" encoding="gb2312" ?>
如果是Unicode(默认),则为<?xml version="1.0"?>
http://www.w3.org/TR/2001/REC-xml-c14n-20010315比如:对 Text Nodes 允许的字符有如下要求: the string value, except all ampersands are replaced by &, all open angle brackets (< ) are replaced by <, all closing angle brackets (> ) are replaced by >, and all #xD characters are replaced by 
. 由于这些特殊字符比较多,我们在XML中替换的工作量比较大,我们可以在DTD文件中作些定义:比如DTD文件中增加以下部分:<!-- PERCENT SIGN -->
<!ENTITY amp "&#38;">
<!-- COPYRIGHT SIGN -->
<!ENTITY reg "®">
<!-- REG TRADE MARK SIGN -->
<!ENTITY trade "™">并在XML中定义这个XML文件需要这个DTD支持:<!DOCTYPE HeadCount SYSTEM "eula.dtd">这样在XML文件中出现 & ® ™ 这类特殊字符就不会再报错了。有关更多的特殊字符可以参看:http://xml.coverpages.org/CourtDocument11-2002-05s-DTD.txt那里罗列的特殊字符有近200个。