2012-09-05 37 views
3

我可以使用SAX解析器或Transformer將XML從一種格式轉換爲另一種格式嗎?如果是這樣,那麼確切的區別是什麼?SAX解析器和Java中的XML Transformer之間有什麼區別?

編輯::我的意思是我創建使用SAXTransformerFactory

+0

那麼,其中一個是解析,另一個是轉換,呃!因此,使用解析器,您需要自己進行轉換。 –

+2

「烏鴉如何像寫字檯一樣?(c)」我的意思是,解析器和變壓器是兩種不同的東西,有時可以用來實現相同的目標。 – dasblinkenlight

+0

但是有什麼區別,你能用一個例子來解釋嗎? – Phoenix

回答

2

SAX解析器可以讓你的變壓器解析在Java的XML文檔。它會回調每個元素,字符序列等,並使用它可以構造一個代表某些/所有XML的對象樹,或者執行其他一些功能。

存在其他類型的解析器。 DOM解析器將爲您提供XML文檔的基於樹的對象表示。對每種解析器類型都是優點/缺點(DOM通常表現爲內存密集程度更高,但提供了XML的完整模型,而SAX是輕量級的,但是解析器本身會回調它,並且無法導航任何模型的XML)

我有點含糊不清。你的XML Transformer,但我假設你的意思是XSLT。這是一個樣式表改造,在更高層次上進行操作,應用變換(樣式表)來輸入XML並進行輸出時(通常,但不限於,XML)

編輯:按照您的評論,看到this article

最後你可能想要寫XML文檔的字符串或 文件,這可以用Transformer對象,其中來自 變壓器廠

+0

他可能意味着[xml變壓器](http://docs.oracle.com/javase/1.4.2/docs/api/javax/xml/transform/Transformer.html) – oers

+0

我的意思是我可以從SAXTransformerFactory獲得變壓器 – Phoenix

+0

@Phoenix - 看到我修正的答案 –

相關問題