我在这里问你一个关于jdom的基本问题。我正在尝试读取Document对象,但我一直都遇到错误。 我想读的文件是,
<message>
<header>
<messageType>snmp</messageType>
<sendFrom>192.168.0.16</sendFrom>
<hostName>oghmasysMehmet</hostName>
<sendTo>192.168.0.12</sendTo>
<receiverName>Mehmet</receiverName>
<date>03/10/2011</date>
</header>
<body>
<snmpType>getbulk</snmpType>
<ip>127.0.0.1</ip>
<port>161</port>
<oids>
<oid>1.3.6.1.2.1.1</oid>
</oids>
<community>public</community>
<nR>0</nR>
<mR>5</mR>
</body>
</message>
我正在努力重视。为此,我写了一个函数,
public Vector<String> getOIDs(Document document){
Vector<String> oids = new Vector<String>();
Element root = document.getRootElement();
Element body = root.getChild("body");
//Element element = body.getChild("oids");
List rows = body.getChildren("oid");
for (int i = 0; i < rows.size(); i++) {
Element row = (Element) rows.get(i);
String s = row.getText();
oids.add(s);
}
return oids;
}
但是当我调试它时,我总能看到该函数没有读取任何内容。 你能帮我解决一下吗?
谢谢大家
编辑:很抱歉抱问这样一个noob问题,我在getchildren()中犯了一个错误;我应该写oid而不是oid
编辑2:实际上我改变了代码,因为我对我的问题发表了评论但现在,我唯一看到的是“\ n \ n”而不是“1.3.6.1.2.1.1”。您认为问题可能是什么?
答案 0 :(得分:1)
您可以逐步尝试调试它,看看哪些元素没有被读取。如果不尝试,这将是我最好的猜测。
答案 1 :(得分:0)
您注释掉的行是正确的,它下方的行只需要更新即可匹配。您的商家信息应为:
Vector<String> oids = new Vector<String>();
Element root = document.getRootElement();
Element body = root.getChild("body");
Element element = body.getChild("oids");
List rows = element.getChildren("oid");
for (int i = 0; i < rows.size(); i++) {
Element row = (Element) rows.get(i);
String s = row.getText();
oids.add(s);
}
return oids;