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にあたるものが他にもあると思うんですけど、現在調査不足