2011-09-16 77 views
1

當使用fprintf()在C中生成am XML時,應該記住什麼? 我正在使用它,但我在IE中打開xml時遇到了一些問題;但是,在任何編輯器中,它都會顯示正確的內容。使用fprintf生成XML代碼

代碼

int WriteXmlElement(const char* filename, const char* element, int iTextAssociated) 
{ 
    FILE *fp = NULL; 

    fp = fopen(filename, "a+"); 
    if(fp != NULL) 
    { 
     fprintf(fp, "<%s>\n",element); 
     fprintf(fp,"</%s>\n" , element); 

     fclose(fp); 
     return 0; 
    } 
    else 
     return -1; 

} 

XML在IE在任何編輯器

<?xml version="1.0" encoding="UTF-8" ?> 
<Group> </Group> 
+0

請縮小您的問題的範圍。 「我應該記住什麼」非常廣泛,可能涉及許多事情。給我們一些重點。 –

+0

當然。我在我的代碼中使用了兩個fprintf語句在xml頭之後打印。現在,當我打開我的XML使用IE瀏覽器,我看到的XML標頭後(這是錯誤的),而任何編輯器顯示適當的內容。 – user911747

+0

顯示一些代碼和輸出怎麼樣? –

回答

2

正在生成的XML強制

<?xml version="1.0" encoding="UTF-8" ?> 
<Group /> 

XML很好。 Internet Explorer正在選擇重新解釋它,方法是自動將<foo></foo>的空標記重構爲<foo/>以用於顯示目的(它不會修改磁盤上的文件)。如果您想確保您生成的XML文件具有適當的內容,只需在常規文本編輯器而不是IE瀏覽器中查看即可。

+0

謝謝!我會嘗試添加更多的節點到我的父節點(組),然後檢查IE是否正確顯示。 – user911747

0

你正在做的方式是最簡單的方法..但我更喜歡你對你的方式使用http://www.minixml.org/

確保這件事情 1>每個節點應該按順序關閉

2>如果你不寫&之間的任何東西,然後把它們之間的一個空間 (某些瀏覽器顯示錯誤,如果你不寫之間的任何東西)