簡體   English   中英

在使用C解析大型XML頁面時如何解決'返回null'

[英]How to solve 'returned null' when parsing a huge XML page with C

我正在嘗試使用libxml2-2.7.6從Redhat linux 5.5,64bit中的oracle DB解析一個巨大的XML clob數據

但是當我嘗試解析超過400KB(409600字節)的XML時,xml解析器函數'xmlParseMemory'返回空指針。

(成功從XML clob數據加載到C中的字符串,檢查字符串'sData'是否正確填充數據。)

xmlDocPtr xDoc;
...
xDoc = xmlParseMemory(sData, strlen(sData));
if(xDoc == NULL)    return -1;
...

當XML的大小小於400KB時,Parser會工作。 但只有當超過400KB時,paser才會返回空指針,盡管字符串數據正確,'sData'。

我已經在xmlInitParser之前使用xmlMemSetup嘗試了xmlReadDoc,xmlReadMemory。

如何使用xml解析器函數解決這種情況?

如果一切適用於少於400KB的XML,我相信問題是因為你的sData緩沖區。 您應該檢查緩沖區是否有足夠的空間容納大文件(超過400kb):

  • 你為sData分配了多少內存?
  • strlen(sData)是否有效?

暫無
暫無

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

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