蓝色网站,wordpress能赚钱,接入网站备案要多久,番禺人才网招聘网JAVA8 可以使用标准的 DOM 方式的 API 来编写代码解析 XML 文件#xff0c;无需引入第三方依赖。下面是两个测试用的 XML 文件#xff1a;
test.xml
allDatapan attr1a attr2b1/pantilt2/tiltzoom无需引入第三方依赖。下面是两个测试用的 XML 文件
test.xml
allDatapan attr1a attr2b1/pantilt2/tiltzoom3/zoomlistitemitem0/itemitemitem1/itemitemitem2/item/listuser-listusername张三/namegender男/gender/userusername高启兰/namegender女/gender/user/user-list
/allDatatest2.xml
allDatapan attr1a 1/panzoom3/zoomlistitemitem0/itemitemitem1/itemitemitem2/item/list
/allData负责接收所有信息的 AllDataDTO.java
package zhangchao;
import java.util.ArrayList;
import java.util.List;public class AllDataDTO {private Integer pan;private Integer tilt;private Integer zoom;private ListString list new ArrayList();private String panAttr1;private String panAttr2;private ListAllDataUserDTO userList new ArrayList();///// setters/getters///Overridepublic String toString() {final StringBuffer sb new StringBuffer(AllDataDTO{);sb.append(pan).append(pan);sb.append(, tilt).append(tilt);sb.append(, zoom).append(zoom);sb.append(, list).append(list);sb.append(, panAttr1).append(panAttr1).append(\);sb.append(, panAttr2).append(panAttr2).append(\);sb.append(, userList).append(userList);sb.append(});return sb.toString();}public ListAllDataUserDTO getUserList() {return userList;}public void setUserList(ListAllDataUserDTO userList) {this.userList userList;}public ListString getList() {return list;}public void setList(ListString list) {this.list list;}public String getPanAttr1() {return panAttr1;}public void setPanAttr1(String panAttr1) {this.panAttr1 panAttr1;}public String getPanAttr2() {return panAttr2;}public void setPanAttr2(String panAttr2) {this.panAttr2 panAttr2;}public Integer getPan() {return pan;}public void setPan(Integer pan) {this.pan pan;}public Integer getTilt() {return tilt;}public void setTilt(Integer tilt) {this.tilt tilt;}public Integer getZoom() {return zoom;}public void setZoom(Integer zoom) {this.zoom zoom;}
}
负责接收用户信息的 AllDataUserDTO.java
package zhangchao;public class AllDataUserDTO {private String name;private String gender;Overridepublic String toString() {final StringBuffer sb new StringBuffer(AllDataUserDTO{);sb.append(name).append(name).append(\);sb.append(, gender).append(gender).append(\);sb.append(});return sb.toString();}///// setters/getters///public String getName() {return name;}public void setName(String name) {this.name name;}public String getGender() {return gender;}public void setGender(String gender) {this.gender gender;}
}处理 XML 文件的工具类XmlUtils.java
package zhangchao;import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import java.io.File;
import java.io.IOException;public class XmlUtils {public static AllDataDTO parseXml(String xmlFilePath) {File file new File(xmlFilePath);if (!file.exists()) {return null;}DocumentBuilderFactory factory DocumentBuilderFactory.newInstance();//创建一个DocumentBuilderFactory的对象DocumentBuilder builder;AllDataDTO allDataDTO null;try {builder factory.newDocumentBuilder();//创建一个DocumentBuilder对象Document doc builder.parse(file:/// xmlFilePath);Element root doc.getDocumentElement();//获取根节点allDataDTO new AllDataDTO();NodeList childNodes root.getChildNodes();int length childNodes.getLength();for (int i 0; i length; i) {Node node childNodes.item(i);String nodeName node.getNodeName();if (pan.equals(nodeName)) {String content node.getTextContent();content (content null ? null : content.trim());Integer tmp null;try {tmp Integer.parseInt(content);} catch (NumberFormatException e) {}allDataDTO.setPan(tmp);NamedNodeMap namedNodeMap node.getAttributes();Node attr1 namedNodeMap.getNamedItem(attr1);if (attr1 ! null) {String attr1Cont attr1.getTextContent();attr1Cont (attr1Cont null ? null : attr1Cont.trim());allDataDTO.setPanAttr1(attr1Cont);}Node attr2 namedNodeMap.getNamedItem(attr2);if (attr2 ! null) {String attr2Cont attr2.getTextContent();attr2Cont (attr2Cont null ? null : attr2Cont.trim());allDataDTO.setPanAttr2(attr2Cont);}} else if (tilt.equals(nodeName)) {String content node.getTextContent();content (content null ? null : content.trim());Integer tmp null;try {tmp Integer.parseInt(content);} catch (NumberFormatException e) {}allDataDTO.setTilt(tmp);} else if (zoom.equals(nodeName)) {String content node.getTextContent();content (content null ? null : content.trim());Integer tmp null;try {tmp Integer.parseInt(content);} catch (NumberFormatException e) {}allDataDTO.setZoom(tmp);} else if (list.equals(nodeName)) {NodeList itemList node.getChildNodes();int itemLength itemList.getLength();for (int j 0; j itemLength; j) {Node item itemList.item(j);if (item.equals(item.getNodeName())) {String content item.getTextContent();content (content null ? : content.trim());allDataDTO.getList().add(content);}}} else if (user-list.equals(nodeName)) {NodeList userList node.getChildNodes();int userListLength userList.getLength();for (int j 0; j userListLength; j) {Node user userList.item(j);// 读取用户的属性if (user.equals(user.getNodeName())) {AllDataUserDTO userDTO new AllDataUserDTO();NodeList params user.getChildNodes();int paramsLength params.getLength();for (int k 0; k paramsLength; k) {Node param params.item(k);String content param.getTextContent();if (content ! null) {content content.trim();}String paramName param.getNodeName();if (name.equals(paramName)) {userDTO.setName(content);} else if (gender.equals(paramName)) {userDTO.setGender(content);}}allDataDTO.getUserList().add(userDTO);}}}}} catch (ParserConfigurationException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();} catch (SAXException e) {e.printStackTrace();}return allDataDTO;}
}用于测试效果的类 Main.java
package zhangchao;public class Main {public static void main(String[] args) {AllDataDTO allDataDTO XmlUtils.parseXml(E:\\ws\\zc\\Java8Xml\\src\\main\\resources\\TestFile\\ test.xml);AllDataDTO allDataDTO2 XmlUtils.parseXml(E:\\ws\\zc\\Java8Xml\\src\\main\\resources\\TestFile\\ test2.xml);System.out.println(allDataDTO);System.out.println(allDataDTO2);}
}输出结果
AllDataDTO{pan1, tilt2, zoom3, list[item0, item1, item2], panAttr1a, panAttr2b, userList[AllDataUserDTO{name张三, gender男}, AllDataUserDTO{name高启兰, gender女}]}
AllDataDTO{pan1, tiltnull, zoom3, list[item0, item1, item2], panAttr1a, panAttr2null, userList[]}