[英]XML parser - how to get values from Nodes
I have question about parsing an XML File. 我对解析XML文件有疑问。 Lets say I have XML file:
可以说我有XML文件:
<line>
<point>
<X>100</X>
<Y>100</Y>
</point>
<point>
<X>200</X>
<Y>200</Y>
</point>
</line>
and I would like to parse it using DOM
: 我想使用
DOM
解析它:
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(f);
doc.getDocumentElement().normalize();
NodeList nList = doc.getElementsByTagName("point");
for (int temp = 0; temp < nList.getLength(); temp++) {
Node nNode = nList.item(temp);
if (nNode.getNodeType() == Node.ELEMENT_NODE) {
Element eElement = (Element) nNode;
System.out.println("x: " + eElement.getElementsByTagName("X").item(0).getTextContent());
But - how can i get X and Y from XML file as integers? 但是-如何从XML文件中获取X和Y为整数? - first X as x1, first Y as y1 and second X as x2 and second Y as y2 ?
-第一X为x1,第一Y为y1,第二X为x2,第二Y为y2?
I tried: 我试过了:
int x1 = Integer.valueOf(eElement.getAttribute("X"));
int y1 = Integer.valueOf(eElement.getAttribute("Y"));
but without success 但没有成功
// Get the <line> element
NodeList nList = doc.getElementsByTagName("line");
Element line = (Element) nList.item(0);
// Get each <point> element from the <line>
Element point1 = (Element) line.getElementsByTagName("point").item(0);
Element point2 = (Element) line.getElementsByTagName("point").item(1);
// Get each <X> and <Y> from each <point> retrieved before
Integer x1 = Integer.parseInt(point1.getElementsByTagName("X").item(0).getTextContent());
Integer y1 = Integer.parseInt(point1.getElementsByTagName("Y").item(0).getTextContent());
Integer x2 = Integer.parseInt(point2.getElementsByTagName("X").item(0).getTextContent());
Integer y2 = Integer.parseInt(point2.getElementsByTagName("Y").item(0).getTextContent());
The whole code: 整个代码:
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(f);
doc.getDocumentElement().normalize();
NodeList nList = doc.getElementsByTagName("line");
Element line = (Element) nList.item(0);
Element point1 = (Element) line.getElementsByTagName("point").item(0);
Element point2 = (Element) line.getElementsByTagName("point").item(1);
Integer x1 = Integer.parseInt(point1.getElementsByTagName("X").item(0).getTextContent());
Integer y1 = Integer.parseInt(point1.getElementsByTagName("Y").item(0).getTextContent());
Integer x2 = Integer.parseInt(point2.getElementsByTagName("X").item(0).getTextContent());
Integer y2 = Integer.parseInt(point2.getElementsByTagName("Y").item(0).getTextContent());
System.out.println("x1: " + x1 + "\ty1: " + y1 + "\tx2: " + x2 + "\ty2: " + y2);
Output: 输出:
x1: 100 y1: 100 x2: 200 y2: 200
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.