2014-12-05 2 views
0

Мой XML будет выглядеть следующим образом:Как извлечь данные из XML?

< Header> 
    < Feature web="true" mob="false" app="true">some data< /feature> 
< /Header> 

Я хочу Java файл с данными веб-сайтов, черни, приложение в булево и somedata как строки в Java. Как извлечь данные из xml? Пожалуйста, помогите

+0

Я хотел бы использовать XPath: http://stackoverflow.com/questions/340787/parsing-xml-with- XPath-в-Java – Thilo

ответ

0

Преобразование XML Предоставляемые java. Это вернет вам что-то вроде dom объектов, которые вы можете использовать для получения любых данных, имеющихся в xml. В вашем случае некоторые атрибуты тега функции и другие.

После этого урока https://docs.oracle.com/javase/tutorial/jaxp/dom/readingXML.html

Пример кода быстро попробовать его ;-)

public class TransformXml { 

    public static void main(String[] args) { 
     String xmlStr = "<Header><feature web=\"true\" mob=\"false\" app=\"true\">some data</feature></Header>"; 

     Document doc = convertStringToDocument(xmlStr); 

     String str = convertDocumentToString(doc); 
     System.out.println(str); 
    } 

    private static String convertDocumentToString(Document doc) { 
     TransformerFactory tf = TransformerFactory.newInstance(); 
     Transformer transformer; 
     try { 
      transformer = tf.newTransformer(); 
      // below code to remove XML declaration 
      // transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, 
      // "yes"); 
      StringWriter writer = new StringWriter(); 
      transformer.transform(new DOMSource(doc), new StreamResult(writer)); 
      String output = writer.getBuffer().toString(); 
      return output; 
     } catch (TransformerException e) { 
      e.printStackTrace(); 
     } 

     return null; 
    } 

    private static Document convertStringToDocument(String xmlStr) { 
     DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); 
     DocumentBuilder builder; 
     try { 
      builder = factory.newDocumentBuilder(); 
      Document doc = builder.parse(new InputSource(new StringReader(xmlStr))); 
      return doc; 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
     return null; 
    } 
} 
Смежные вопросы