JavaでXML-StringからDocument、DocumentからStringに変換

| | コメント(0) | トラックバック(0)

JavaでXMLを扱う時、よくString⇔Documentの変換が必要になる。

どうも、このString⇔Documentの変換をサポートするAPIが見つからなかったので、書いた。

参考:http://www6.airnet.ne.jp/manyo/xml/index.html
   http://www.hellohiro.com/xmldom.htm

皆々様、レビューをお願いします。

============================

import java.io.IOException;
import java.io.StringReader;
import java.io.StringWriter;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;

import org.apache.log4j.Logger;
import org.w3c.dom.Document;
import org.xml.sax.InputSource;
import org.xml.sax.SAXException;

/**
* xml操作に関連するUtilクラス
*
* @author hirop
*
*/
public class XMLUtils {

private static final Logger _logger = Logger.getLogger(XMLUtils.class);

/**
* org.w3c.dom.DocumentをStringに変換する
* 変換できなかったときはnullを返す
* @param doc
* @return string
*/
public static String document2String(Document doc) {
String string = null;
StringWriter writer = new StringWriter();
StreamResult result = new StreamResult(writer);
TransformerFactory factory = TransformerFactory.newInstance();

Transformer former;
try {
former = factory.newTransformer();
former.transform(new DOMSource(doc.getDocumentElement()), result);
string = result.getWriter().toString();
} catch (TransformerConfigurationException e) {
_logger.warn(e);
} catch (TransformerException e) {
_logger.warn(e);
}
return string;
}

/**
* Stringをorg.w3c.dom.Documentに変換する
* 変換失敗時にはnullを返す。
* @param string
* @return Document
* @throws IOException
* @throws SAXException
* @throws ParserConfigurationException

*/
public static Document string2Document(String str){
Document doc = null;
try {

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
StringReader strReader = new StringReader(str);
doc = builder.parse(new InputSource(strReader));

builder = factory.newDocumentBuilder();
} catch (ParserConfigurationException e) {
_logger.warn(e);
} catch (SAXException e) {
_logger.warn(e);
} catch (IOException e) {
_logger.warn(e);
}

return doc;

}

}
================

トラックバック(0)

このブログ記事を参照しているブログ一覧: JavaでXML-StringからDocument、DocumentからStringに変換

このブログ記事に対するトラックバックURL: http://hirop0164.s326.xrea.com/mt/mt-tb.cgi/147

コメントする


画像の中に見える文字を入力してください。

このブログ記事について

このページは、ぴろしが2008年4月27日 13:21に書いたブログ記事です。

ひとつ前のブログ記事は「Google Ajax Search APIを使ってコンテンツを増やす。-ニュース偏」です。

次のブログ記事は「Javaで自動テスト-EclipseでTestNGを使ってみる。」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。