Как создать объект Document в Java? - PullRequest
0 голосов
/ 03 октября 2011

Я хочу создать объект Document с помощью jdom.Я написал функцию, но после отладки я вижу, что она не создана.и так как я новичок в XML, я не понимаю, почему я не могу создать.Можете ли вы помочь мне в этом?

public Document createSNMPMessage (){

    Element root = new Element("message");
    Document document = new Document(root);

    Element header = new Element("header");

    Element messageType = new Element("messageType").setText("snmp");
    Element sendFrom = new Element("sendFrom").setText("192.168.0.16");
    Element hostName = new Element("hostName").setText("oghmasysMehmet");
    Element sendTo = new Element("sendTo").setText("192.168.0.12");
    Element receiverName = new Element("receiverName").setText("Mehmet");
    Element date = new Element("date").setText("03/10/2011");

    header.addContent(messageType);
    header.addContent(sendFrom);
    header.addContent(hostName);
    header.addContent(sendTo);
    header.addContent(receiverName);
    header.addContent(date);

    Element body = new Element("body");

    Element snmpType = new Element("snmpType").setText("getbulk");
    Element ip = new Element("ip").setText("127.0.0.1");
    Element port = new Element("port").setText("161");
    Element oids = new Element("oids");
    Element oid = new Element("oid").setText("1.3.6.1.2.1.1.3.0");
    oids.addContent(oid);
    Element community = new Element("community").setText("community");
    Element nR = new Element("nR").setText("0");
    Element mR = new Element("mR").setText("5");

    body.addContent(snmpType);
    body.addContent(ip);
    body.addContent(port);
    body.addContent(oids);
    body.addContent(community);
    body.addContent(nR);
    body.addContent(mR);

    return document;

}

Когда я создаю его, я преобразую его в строку с помощью этой функции;

    public String xmlToString(Document doc) {
    XMLOutputter outputter = new XMLOutputter(Format.getPrettyFormat());
    return outputter.outputString(doc);
}

и Когда я пытаюсь преобразовать в строку, чтобы увидеть, что находится внутри документая получил;

<?xml version="1.0" encoding="UTF-8"?>
<message />

1 Ответ

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

Из того, что я вижу, вы создаете объект Document и добавляете узлы к узлам header и body, но эти узлы не добавляются в ваш экземпляр объекта Document document.

Полагаю, вы захотите добавить эти узлы к элементу root, который уже добавлен к вашему document.

Итак, вы можете добавить его в корень вашего документа, как показано ниже:

public Document createSNMPMessage (){

    Element root = new Element("message");
    Document document = new Document(root);

    Element header = new Element("header");

    ...
    ...

    Element body = new Element("body");

    ...
    ...

    root.addContent(header);  // NOTE THESE NEW LINES
    root.addContent(body);  // NOTE THESE NEW LINES

    return document;

}
...