簡體   English   中英

名稱不能以 '<' 字符十六進制值 0x3c 開頭

[英]Name cannot begin with the '<' character hexadecimal value 0x3c

我正在嘗試使用 SOAP 請求從 WebService 獲取一些數據。 SOAP 主體應包含 SQL 查詢。 每當我使用<字符時,它都會導致SOAPReqBody.LoadXml()出現上述錯誤。 我怎樣才能解決這個問題?

HttpWebRequest request = CreateSOAPWebRequest();
XmlDocument SOAPReqBody = new XmlDocument();
SOAPReqBody.LoadXml(@"<?xml version=""1.0"" encoding=""utf-8""?>
 <soap:Envelope xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xmlns:xsd=""http://www.w3.org/2001/XMLSchema"" xmlns:soap=""http://schemas.xmlsoap.org/soap/envelope/"">
 <soap:Body>  
    <Query xmlns=""http://LifaOIS.DK/OISService"">
      <UID>" + uid + @"</UID>
      <PWD>" + pwd + @"</PWD>
      <SQL>" + sql + @"</SQL>
      <Meta>" + meta + @"</Meta>
     </Query>
  </soap:Body>  
</soap:Envelope>");

這很難看,但是如果您確實必須在消息有效負載中攜帶 SQL 查詢,並且小於“<”字符是 XML 中的問題並且您無法控制有效負載的打包和解包,那么您可能需要考慮使用之間...

WHERE field NOT EQUAL minValue AND field BETWEEN minvalue AND upperValue

請注意,BETWEEN 的 from 和 to 值是包容性的 - 因此需要排除 minValue

您是否嘗試將sql包裝在<.[CDATA[...]]>中?

喜歡:

<SQL><![CDATA[" + sql + @"]]></SQL>

代替

<SQL>" + sql + @"</SQL>

請參閱XML 中的 <?[CDATA[]]> 是什么意思? 更多細節。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM