|
|
|
Java - Help needed in parsing XML from URL to a HashMap |
|
|
|
|
|
|
|
ตามนี้เลยครับ
Code (Java)
ArrayList<HashMap<String, String>> myArrList = new ArrayList<HashMap<String, String>>();
HashMap<String, String> map;
for (int temp = 0; temp < nList.getLength(); temp++) {
Node nNode = nList.item(temp);
if (nNode.getNodeType() == Node.ELEMENT_NODE) {
Element ele = (Element) nNode;
map = new HashMap<String, String>();
map.put("ImageID", ele.getElementsByTagName("ImageID")
.item(0).getTextContent());
map.put("ItemID", ele.getElementsByTagName("ItemID")
.item(0).getTextContent());
map.put("ImagePath", ele.getElementsByTagName("ImagePath")
.item(0).getTextContent());
map.put("Link", ele.getElementsByTagName("Link").item(0)
.getTextContent());
myArrList.add(map);
}
}
Java XML Read / Parser
|
|
|
|
|
Date :
2013-08-21 10:34:38 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณมากครับ
|
|
|
|
|
Date :
2013-08-21 10:38:17 |
By :
Depper |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
รบกวนสอบถามอีกทีครับ คือตัวอย่างมันเป็นการดึง xml ที่เป็น ไฟล์ มาจากเครื่อง แต่ถ้าผมดึง xml มาจาก Web ผมจะต้อง code ประมาณไหนอะครับ รบกวนอีกทีครับท่าน
|
|
|
|
|
Date :
2013-08-21 11:04:40 |
By :
Depper |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
จาก
Code (Java)
File strXML = new File("C:\\java\\myData.xml");
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbf.newDocumentBuilder();
Document doc = dBuilder.parse(strXML);
เปลี่ยนเป็น
Code (Java)
String url = "https://www.thaicreate.com/data.xml";
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse(new URL(url).openStream());
|
|
|
|
|
Date :
2013-08-21 11:14:29 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เอามาจาก Stackoverflow ต่อยอดได้ไม่ยาก
Code (Java)
mport java.io.IOException;
import java.net.URL;
import org.apache.xerces.parsers.DOMParser;
import org.w3c.dom.Document;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.InputSource;
public class XMLParser {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
parseXml2("http://eutils.ncbi.nlm.nih.gov/entrez/eutils/esummary.fcgi?db=nucleotide&id=224589801");
}
public static void parseXml2(String URL) {
DOMParser parser = new DOMParser();
try {
parser.parse(new InputSource(new URL(URL).openStream()));
Document doc = parser.getDocument();
NodeList nodeList = doc.getElementsByTagName("Item");
for (int i = 0; i < nodeList.getLength(); i++) {
System.out.print("Item "+(i+1));
Node n = nodeList.item(i);
NamedNodeMap m = n.getAttributes();
System.out.print(" Name: "+m.getNamedItem("Name").getTextContent());
System.out.print(" Type: "+m.getNamedItem("Type").getTextContent());
Node actualNode = n.getFirstChild();
if (actualNode != null) {
System.out.println(" "+actualNode.getNodeValue());
} else {
System.out.println(" ");
}
}
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
|
|
|
|
|
Date :
2013-08-21 11:15:03 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณอีกครั้ง ครับผม :)
|
|
|
|
|
Date :
2013-08-21 15:26:37 |
By :
Depper |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Date :
2013-08-22 21:41:18 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
รบกวนสอบถามอีกครั้งนะครับ คือถ้าผมเก็บ xml มาแล้วรอบนึง แล้วผมอยากเอาเปรียบเทียบกับ xml ที่ request มาอีกรอบนึง โดยการ check ว่า xml มันเปลี่ยนแปลงไหม ? ผมจะ code ยังไงอะ ประมาณว่าตรวจสอบ ว่ามี xml เก็บไว้แล้วหรือยังอะครับ มันใช้ map.containsKey ("...") // map.containsValue("....."); ของ hashmap หรือ การตรวจสอบของ ArrayList >> if (myArrList.contains("...")) {...} << สำหรับตัวอย่างข้างบนอะครับ ใช้ยังไงอะครับ งงมากเลยอะครับ ช่วยทีนะครับ
|
ประวัติการแก้ไข 2013-09-04 09:20:03
|
|
|
|
Date :
2013-09-02 17:10:46 |
By :
Depper |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 04
|