Ошибка при чтении текста из документа в jdom? - PullRequest
0 голосов
/ 03 октября 2011

Я здесь, чтобы задать вам основной вопрос о 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 ();Я должен был написать oids вместо oid

РЕДАКТИРОВАТЬ 2: На самом деле я изменил код, как я прокомментировал мой вопрос, но теперь, единственное, что я прочитал, это "\ n \ n" не "1.3.6.1.2.1.1" .Как вы думаете, проблема может быть?

Ответы [ 2 ]

1 голос
/ 03 октября 2011

На первый взгляд, мне кажется, что у него нет ребенка "oid", у него есть ребенок "oids". Элемент, который вы пытаетесь прочитать, находится внутри элемента "oids".

Вы можете попытаться отладить его шаг за шагом и посмотреть, какой элемент не читается. Это было бы моим лучшим предположением, не пытаясь это сделать.

0 голосов
/ 03 октября 2011

Ваша закомментированная строка была правильной, строка под ней просто должна быть обновлена, чтобы соответствовать. Ваш список должен быть:

 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;   
...