本文共 1440 字,大约阅读时间需要 4 分钟。
我正在尝试使用Java中的DOM解析器解析XML文档.我需要获取各种属性的值.我正在尝试解析以下文档:
使用以下代码:
import java.io.InputStream;
import java.util.HashMap;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.ksoap2.serialization.SoapObject;
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;
public class Parsers {
String Etg, Dob, Breed, Brd, Sex, EId, GdEtg, SuEtg, SiEtg, BLoc, BSLoc,
PLoc, PSLoc, Code, Desc;
static String response;
public String Birth(InputStream in) {
try {
DocumentBuilderFactory dbFactory = DocumentBuilderFactory
.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(in);
doc.getDocumentElement().normalize();
try {
NodeList list = doc.getElementsByTagName("Reject");
int L = list.getLength();
for (int x = 0; x < L; x++) {
setNull();
Node node = list.item(x);
NodeList sublist = node.getChildNodes();
for (int y = 0; y < sublist.getLength(); y++) {
Node finNode = (Node) sublist.item(y);
if (finNode.getNodeType() == Node.ELEMENT_NODE) {
Element fin = (Element) finNode;
getAttributes(fin);
}
}
}
}catch(Exception e){}
}catch(Exception e){}
}
private void getAttributes(Element fin) {
Etg = fin.getAttribute("Etg");
Code = fin.getAttribute("Code");
System.out.println(Etg + ":" + Code);
}
}
当我得到Etg的值时,Code和Desc的值将返回为空白.我认为这是因为它们被嵌入在更深的“层”中,但是我不知道如何解决该问题.
非常感谢.
转载地址:https://blog.csdn.net/weixin_32541333/article/details/114355399 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!