2012-01-12 50 views
0

我有如下一個示例XML數據,現在我能夠包括只有一個XML數據的C數據如何在XML的Cdata部分中包含兩個XML標記?

請告訴我如何可以包括兩個XML標籤CDATA節

<soap11env:Envelope xmlns:soap11env="http://schemas.xmlsoap.org/soap/envelope/"> 
      <soap11env:Header></soap11env:Header> 
      <soap11env:Body> 
<strategy> 
      <request> 
<fixmlMessage> 
<![CDATA[<accountid>384</accountid>]]> 
</fixmlMessage> 
</request> 
</strategy> 
      </soap11env:Body> 
     </soap11env:Envelope> 

謝謝。

+1

請解釋爲什麼你不能在CDATA中包含另一個XML元素?你究竟在哪裏遇到困難? – Oded 2012-01-12 10:53:00

+0

不知道我什麼時候試過這個 <![CDATA [ EQ]!> 它開始給我XML解析錯誤。 (WstxParsingException)在Java文件內 – Pawan 2012-01-12 10:57:46

+0

這沒有任何意義。你有什麼理由想要這樣做? – skaffman 2012-01-12 11:00:14

回答

0

也許以下是可以接受的 -

<![CDATA[<myData><datum1>384</datum1><datum2>483</datum2></myData>]]> 
0

有在CDATA沒有標籤,顧名思義。 CDATA的意思是「字符數據」:通過將事物放入CDATA中,您明確地說「這裏的任何東西看起來像標籤並不是標籤」。那麼你究竟想要實現什麼?

0

@atara是正確的,但沒有解釋他們正在得到什麼。不管你有什麼理由在CDATA內容中添加XML,然後使用Java解析和解析它,你仍然需要解析有效的XML。你在那裏的兩個元素本身並不構成有效的XML,沒有根元素。當從Java應用程序中取出CDATA內容並將其解析爲XML時,應該抱怨。嘗試包裹它作爲@atara建議,如:!

< [CDATA [< msgcontent> < ACCOUNTID> 384 </ACCOUNTID> <用戶> EQ < /用戶> </msgcontent>]]>