web-dev-qa-db-fra.com

Comment créer un objet XML à partir de String in Java?

J'essaie d'écrire un code qui m'aide à créer un objet XML. Par exemple, je vais donner une chaîne comme entrée à une fonction et cela va me retourner un XMLObject.

XMLObject convertToXML(String s) {}

Lorsque je cherchais sur le net, je voyais généralement des exemples de création de documents XML. Donc, tout ce que j'ai vu sur la création d'un XML et l'écriture sur un fichier et créer le fichier. Mais j'ai fait quelque chose comme ça:

Document document = new Document();
Element child = new Element("snmp");
child.addContent(new Element("snmpType").setText("snmpget"));
child.addContent(new Element("IpAdress").setText("127.0.0.1"));
child.addContent(new Element("OID").setText("1.3.6.1.2.1.1.3.0"));
document.setContent(child);

Pensez-vous qu'il suffit de créer un objet XML? et aussi pouvez-vous s'il vous plaît m'aider comment obtenir des données à partir de XML? Par exemple, comment puis-je obtenir le IpAdressde ce XML?

Merci beaucoup

(EDIT 1: En fait, je pensais que ce serait peut-être beaucoup plus facile pour moi d'avoir un fichier comme base.xml, Je vais écrire toutes les choses de base dans cela par exemple:

<snmp>
<snmpType><snmpType>
<OID></OID>
</snmp>

puis utilisez ce fichier pour créer un objet XML. Qu'est ce que tu penses de ça?

43
Ozer

Si vous pouvez créer une chaîne xml, vous pouvez facilement la transformer en objet de document xml, par exemple. -

String xmlString = "<?xml version=\"1.0\" encoding=\"utf-8\"?><a><b></b><c></c></a>";  

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();  
DocumentBuilder builder;  
try {  
    builder = factory.newDocumentBuilder();  
    Document document = builder.parse(new InputSource(new StringReader(xmlString)));  
} catch (Exception e) {  
    e.printStackTrace();  
} 

Vous pouvez utiliser l'objet document et les bibliothèques d'analyse XML ou xpath pour récupérer l'adresse IP.

83
Jayendra

essayez quelque chose comme

public static Document loadXML(String xml) throws Exception
{
   DocumentBuilderFactory fctr = DocumentBuilderFactory.newInstance();
   DocumentBuilder bldr = fctr.newDocumentBuilder();
   InputSource insrc = new InputSource(new StringReader(xml));
   return bldr.parse(insrc);
}
11
i100