我可以使用SAX解析器或Transformer將XML從一種格式轉換爲另一種格式嗎?如果是這樣,那麼確切的區別是什麼?SAX解析器和Java中的XML Transformer之間有什麼區別?
編輯::我的意思是我創建使用SAXTransformerFactory
我可以使用SAX解析器或Transformer將XML從一種格式轉換爲另一種格式嗎?如果是這樣,那麼確切的區別是什麼?SAX解析器和Java中的XML Transformer之間有什麼區別?
編輯::我的意思是我創建使用SAXTransformerFactory
SAX解析器可以讓你的變壓器解析在Java的XML文檔。它會回調每個元素,字符序列等,並使用它可以構造一個代表某些/所有XML的對象樹,或者執行其他一些功能。
存在其他類型的解析器。 DOM解析器將爲您提供XML文檔的基於樹的對象表示。對每種解析器類型都是優點/缺點(DOM通常表現爲內存密集程度更高,但提供了XML的完整模型,而SAX是輕量級的,但是解析器本身會回調它,並且無法導航任何模型的XML)
我有點含糊不清。你的XML Transformer,但我假設你的意思是XSLT。這是一個樣式表改造,在更高層次上進行操作,應用變換(樣式表)來輸入XML並進行輸出時(通常,但不限於,XML)
編輯:按照您的評論,看到this article:
最後你可能想要寫XML文檔的字符串或 文件,這可以用Transformer對象,其中來自 變壓器廠
比較來完成:
何時使用SAX:http://docs.oracle.com/javase/tutorial/jaxp/sax/when.html 和
何時使用DOM:http://docs.oracle.com/javase/tutorial/jaxp/dom/when.html
參見:http://docs.oracle.com/javaee/1.4/tutorial/doc/JAXPXSLT4.html
我相信SAX將是基於事件讀取/寫入XML和Transformer將用於操作已解析的XML。
那麼,其中一個是解析,另一個是轉換,呃!因此,使用解析器,您需要自己進行轉換。 –
「烏鴉如何像寫字檯一樣?(c)」我的意思是,解析器和變壓器是兩種不同的東西,有時可以用來實現相同的目標。 – dasblinkenlight
但是有什麼區別,你能用一個例子來解釋嗎? – Phoenix