xml特殊字元處理 如&

來源:互聯網
上載者:User

寫了個request2XML的方法,每當資料中有'<'、'&'符號時,封裝的XML就無法解析。發現了XML裡的CDATA屬性,問題迎刃而解!在XML文檔中的所有文本都會被解析器解析。 只有在CDATA組件之內的文本會被解析器忽略。----------------------------------------------------- 解析資料 XML 解析器通常情況下會處理XML文檔中的所有文本。 當XML元素被解析的時候,XML元素內部的文本也會被解析: This text is also parsed XML解析器這樣做的原因是XML元素內部可能還包含了別的元素,象下面的例子,name元素內部包含了first和last兩個元素: BillGates 解析器會認為上面的代碼是這樣的: Bill Gates ----------------------------------------------------- 逸出字元不合法的XML字元必須被替換為相應的實體。 如果在XML文檔中使用類似"<" 的字元, 那麼解析器將會出現錯誤,因為解析器會認為這是一個新元素的開始。所以不應該象下面那樣書寫代碼: if salary < 1000 then 為了避免出現這種情況,必須將字元"<" 轉換成實體,象下面這樣: if salary < 1000 then 下面是五個在XML文檔中預定義好的實體:
< < 小於符號
> > 大於符號
& & 和
' ' 單引號
" " 雙引號
實體必須以符號"&"開頭,以符號";"結尾。 注意: 只有"<" 字元和"&"字元對於XML來說是嚴格禁止使用的。剩下的都是合法的,為了減少出錯,使用實體是一個好習慣。----------------------------------------------------- CDATA組件在CDATA內部的所有內容都會被解析器忽略。如果文本包含了很多的"<"字元和"&"字元——就象程式碼一樣,那麼最好把他們都放到CDATA組件中。一個 CDATA 組件以"

在前面的例子中,所有在CDATA組件之間的文本都會被解析器忽略。 CDATA注意事項: CDATA組件之間不能再包含CDATA組件(不能嵌套)。如果CDATA組件包含了字元"]]>" 或者"<![CDATA[" ,將很有可能出錯哦。同樣要注意在字串"]]>"之間沒有空格或者分行符號。

轉自:http://blog.csdn.net/lihualiu81/archive/2011/03/08/6231177.aspx

 

Approval Setting時特殊字元的問題:

如果Approver_Role輸入了“<br>”,那麼在申請表單時什麼出錯,因為在組合XML字串時遇到了<。需要轉義。

ServiceForFlowER.cs


approvalXML += "<Approver>"


                            + "<Approver_ID>" + GetEmpID(approverTable.Rows[i][entityApprover.Approver.PhysicalFieldName].ToString()) + "</Approver_ID>"


                            + "<Sequence_No>" + approverTable.Rows[i][entityApprover.ApprovalOrder.PhysicalFieldName].ToString() + "</Sequence_No>"


                            + "<Approver_Role>" + approverTable.Rows[i][entityApprover.Role.PhysicalFieldName].ToString() + "</Approver_Role>"


                            + "</Approver>";

PS:

不合法的XML字元必須被替換為相應的實體。

如果在XML文檔中使用類似"<" 的字元, 那麼解析器將會出現錯誤,因為解析器會認為這是一個新元素的開始。所以不應該象下面那樣書寫代碼:

<message>if salary < 1000 then</message>

為了避免出現這種情況,必須將字元"<" 轉換成實體,象下面這樣:

<message>if salary &lt; 1000 then</message>

下面是五個在XML文檔中預定義好的實體:

&lt;

小於符號

&gt;

大於符號

&amp;

&

&apos;

'

單引號

&quot;

"

雙引號

實體必須以符號"&"開頭,以符號";"結尾。 注意: 只有"<" 字元和"&"字元對於XML來說是嚴格禁止使用的。剩下的都是合法的,為了減少出錯,使用實體是一個好習慣。

轉自:http://qm1009lov0308csn.blog.163.com/blog/static/88586466200810148375938/

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.