【问题标题】:How to extract data from XML?如何从 XML 中提取数据?
【发布时间】:2014-12-05 05:47:47
【问题描述】:

我的 XML 将如下所示:

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

我想要 java 文件,其中 web、mob、app 的数据为布尔值,somedata 为 java 中的字符串。如何从xml中提取数据?请帮忙

【问题讨论】:

标签: java xml jakarta-ee xml-parsing


【解决方案1】:

您可以使用java提供的XML转换。这将返回一个名为 dom objects 的东西,您可以使用它来检索您在 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;
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-08-27
    • 2014-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-17
    • 1970-01-01
    • 2019-04-18
    相关资源
    最近更新 更多