2012-11-15 88 views
0

我想要一個解析XML文件的程序,使用我需要的標記構建一個結構,並最終使用HTML模板打印HTML模板由XML文件中的數據。 因爲我還沒有真正進入面向對象編程,所以我希望得到一些技巧和建議,以便如何構建這樣的程序。 我以爲兩個班應該夠了。解析器類和數據類。 第一個通過XML文件並將要存儲的每個標記報告給以分層順序存儲所有標記的數據對象。之後,我想調用打印功能,將所有內容打印爲HTML報告。帶有HTML-reportgenerator的C++ XML解析器的體系結構

  1. 我不知道如何將標籤報告數據對象
  2. 我能存儲在存儲結構的樹或會更好每個標籤存儲在一個單獨的對象一個對象標籤?

任何幫助將不勝感激!

+0

是C++必須的嗎?您可以使用XSLT執行此操作,請參閱http://www.w3schools.com/xsl/ – Zane

+0

@Zane我讀了XSLT,但這次我想用C++試試它 – samoncode

回答

0

我解決了我的問題,並希望分享我的架構。 我做了一個類解析器來解析元素,並將標記報告給一個HTMLHandler類,該類具有Header,Content和Sub-content等子類。存儲數據並且都有write()方法來自行打印出來。

適合我,並且退出簡單:)

0

你沒有在你的問題中提到Qt,但是當你將它作爲標籤添加時:有QtXML,它將提供解析和生成XML文檔的方式,並且也可用於HTML輸出。 XML通常通過DOM或SAX進行處理。使用DOM,文檔將被解析爲樹形結構,並且您將在樹上工作爲中心數據元素。使用SAX,您可以在解析XML輸入時使用針對不同XML元素調用的回調函數。

互聯網上有很多DOM和SAX,維基百科是一個很好的起點。 QtXML在線上也有很多文檔。

使用DOM和/或SAX將爲解決問題提供一個很好的體系結構。

+0

是的,我想用Qt,很抱歉,我沒有提到它。我將開始閱讀使用QtXml創建Html輸出的可能性。 – samoncode

+0

我找不到任何支持輸出HTML。我已經在小型項目中使用過QDom和QXmlStreamReader。因此解析XML不是問題。我希望得到一些關於如何使組件可重用的應用程序體系結構的建議。例如,如果我想在某一天更改輸出數據類型... – samoncode

+0

XHTML(http://www.w3schools.com/html/html_xhtml.asp)是符合XML規範的HTML,因此您可以輸出它以獲取HTML文檔。看起來你是一個通用報告生成器的縮寫 - 你能舉一個簡單的例子來說明你的數據和報告的外觀嗎? – Zane