XMLからparseするときのやり方。+中身を取り出すやり方
XMLからStringに変換するときのやり方。
DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder(); //doc = builder.parse(new StringBufferInputStream(strXml));//非推奨 doc = builder.parse(new ByteArrayInputStream(xml.getBytes("utf-8")));
全体的な流れはこんな感じ。
List<HogeEntity> resultList = new ArrayList<HogeEntity>(); String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"+ "<hogehoge><abc><xyz><foo>hoge</foo></xyz></abc></hogehoge>"; Document doc = null; DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder(); //doc = builder.parse(new StringBufferInputStream(strXml));//非推奨 doc = builder.parse(new ByteArrayInputStream(xml.getBytes("utf-8"))); // ルートの要素名になっている子ノードを取得する Element root = doc.getDocumentElement(); // 各ノードリストを取得(レコメンドアイテム単位) NodeList nodeList = root.getElementsByTagName("abc"); for(int i = 0; i < nodeList.getLength(); i++){ // レコメンドアイテム内のアイテムフィールド単位を取得 Element element = (Element)nodeList.item(i); NodeList minList = element.getElementsByTagName("xyz"); // アイテムフィールド値を取得 for(int j = 0; j < minList.getLength(); j++){ Element minElement = (Element)minList.item(j); HogeEntity entity = new HogeEntity(); entity.setItem_code(HttpConversation.getChildren(element, "hoge")); resultList.add(entity); } }
docの中身をLog.info(doc)で出したら[#document: null]と表示されてびっくりした。
確認しようと思ったんだけど、これは意味ないので、それよりかはxmlの中身を確認した方が良さげ。