2011-09-30 17 views
34

Estoy tratando de escribir un código que me ayude a crear un objeto XML. Por ejemplo, daré una cadena como entrada a una función y me devolverá un XMLObject.Cómo crear un objeto XML a partir de String en Java?

XMLObject convertToXML(String s) {} 

Cuando yo estaba buscando en la red, en general, vi ejemplos sobre la creación de documentos XML. Entonces, todas las cosas que vi acerca de crear un XML y escribir en un archivo y crear el archivo. Pero he hecho algo así:

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

¿Cree que es suficiente para crear un objeto XML? y también, ¿pueden ayudarme a obtener datos de XML? Por ejemplo, ¿cómo puedo obtener el IpAdress de ese XML?

gracias a todos mucho

EDIT 1: En realidad ahora pensé que tal vez sería mucho más fácil para mí tener un archivo como base.xml, voy a escribir todas las cosas básicas en que, por ejemplo:

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

y luego utilice este archivo para crear un objeto XML. ¿Qué piensas sobre eso?

+0

dar el nombre completo (FQN) de XMLObject. ¿Estás usando xmlbeans? –

+0

Ok, primera pregunta: ¿Qué es 'XMLObject'? ¿Qué biblioteca es esa? –

+0

XMLObject es solo un ejemplo, quiero una función que obtiene una cadena como parámetro y luego devuelve un objeto XML. Estoy usando jdom para la implementación. – Ozer

Respuesta

70

Si se puede crear una cadena XML que puede transformar fácilmente en el objeto de documento XML, por ejemplo, -

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(); 
} 

Usted puede utilizar el objeto de documentos y bibliotecas de análisis XML o XPath para recuperar la dirección IP.

+0

como entiendo "parse" devuelve un objeto de documento DOM, ¿qué harás para obtener una versión SAX de este código? gracias! – theexplorer

+0

¿Qué sucede si no hay un origen y queremos crear un nuevo objeto de documento y anexarle elementos secundarios? ¿Es posible o primero debemos crear el elemento raíz? –

10

intentar algo así como

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); 
} 
Cuestiones relacionadas