DOMからSAX(For OpenAMF)

Java-Flash(openAMF)の連携でXMLを使用する場合、DOMで受け渡しできる。

ただ、Javaオンリーの環境だけでもそうなのだが、DOMをSAXに変換、要はparseできずに悩む…。

とりあえず、以下の方法で解決

import java.io.ByteArrayInputStream;

import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.openamf.util.XMLUtils;

public void parseSAXFromDOM(Document doc){

String Encode = "UTF-8";

SAXParserFactory spf = SAXParserFactory.newInstance();
SAXParser sp;
    try {
        sp = spf.newSAXParser();
         //ハンドラの作成
        Handler handler  = new Handler();
        Element root = doc.getDocumentElement();
        String strData = XMLUtils.convertDOMToString(root);

        sp.parse(new ByteArrayInputStream(strData.getBytes(Encode)),handler);

        以下それぞれ目的にあった処理

    }

}

…以下省略

ポイントはまずDOMのルートノードを取得した後でStringに変換すること。これをopenAMFのXMLUtilというクラスのconvertDOMToStringメソッドで処理。

つづいてByteArrayInputStreamを使用しているところ。

XMLUtilのconvertDOMToStringにあたるものが他にもあると思うんですけど、現在調査不足

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


This site uses Akismet to reduce spam. Learn how your comment data is processed.