1. 程式人生 > >XML 中的 ﹤![CDATA[ ]]>,及其解析

XML 中的 ﹤![CDATA[ ]]>,及其解析

CDATA

CDATA 全名:character data。所有 XML 文件中的文字均會被解析器解析除了 CDATA 區段(CDATA section)中的文字會被解析器忽略。

CDATA的形式如下: <![CDATA[文字內容]]> 。

CDATA的文字內容中不能出現字串“]]>”。另外,CDATA不能巢狀。

XML 例項: 在CDATA標記中的資訊被解析器原封不動地傳給應用程式,並且不解析該段資訊中的任何控制標記。 CDATA區域是由“<![CDATA["為開始標記,以“]]>”為結束標記,注意CDATA為大寫。

QDom 解析 xml 中的CDATA

例如 解析下面的 Data 節點中的 CDATA,並將圖片資料載入到記憶體中:
<Data>
   <![CDATA[xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx]]>
</Data> 
        QDomText text  = elem.firstChild().toText();
        QByteArray data = text.data().toUtf8();
        data = QByteArray::fromBase64(data);
        if(!data.isEmpty()){
            QPixmap pix;
            pix.loadFromData(data);
            image->setBitmap(pix);
        }
或者
        QSring data= elem.firstChild().nodeValue();
        QByteArray bitData = data.toUtf8();
        bitData = QByteArray::fromBase64(bitData);
        pix.loadFromData(bitData);