Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java读取XML并将textnodes放入字符串数组?_Java_Xml - Fatal编程技术网

Java读取XML并将textnodes放入字符串数组?

Java读取XML并将textnodes放入字符串数组?,java,xml,Java,Xml,我很抱歉,如果有人问我这个问题,我已经在谷歌上搜索了一个多小时,似乎不知道该怎么做 我已经为我正在制作的一个应用程序创建了一个配置文件,该文件存储在XML中,并且我已经让应用程序成功地创建了XML文件,如果它不存在,则使用DOM 代码,以防需要 public static void newConfig() { try { DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance(

我很抱歉,如果有人问我这个问题,我已经在谷歌上搜索了一个多小时,似乎不知道该怎么做

我已经为我正在制作的一个应用程序创建了一个配置文件,该文件存储在XML中,并且我已经让应用程序成功地创建了XML文件,如果它不存在,则使用DOM

代码,以防需要

    public static void newConfig() {
    try {

        DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
        DocumentBuilder docBuilder = docFactory.newDocumentBuilder();

        // root element
        Document doc = docBuilder.newDocument();
        Element rootElement = doc.createElement("settings");
        doc.appendChild(rootElement);

        // address element
        Element address = doc.createElement("address");
        address.appendChild(doc.createTextNode("127.0.0.1"));
        rootElement.appendChild(address);

        // port element
        Element port = doc.createElement("port");
        port.appendChild(doc.createTextNode("3306"));
        rootElement.appendChild(port);

        // user element
        Element user = doc.createElement("user");
        user.appendChild(doc.createTextNode("user"));
        rootElement.appendChild(address);

        // password element
        Element pass = doc.createElement("pass");
        pass.appendChild(doc.createTextNode("password"));
        rootElement.appendChild(pass);

        // database element
        Element datab = doc.createElement("database");
        datab.appendChild(doc.createTextNode("A1"));
        rootElement.appendChild(datab);

        // write the content to XML
        TransformerFactory transformerFactory = TransformerFactory.newInstance();
        Transformer transformer = transformerFactory.newTransformer();
        DOMSource source = new DOMSource(doc);
        StreamResult result = new StreamResult(new File("config.xml"));
        transformer.setOutputProperty(OutputKeys.INDENT, "yes");
        transformer.transform(source, result);

        } catch (ParserConfigurationException pce) {
        pce.printStackTrace();
        } catch (TransformerException tfe) {
        tfe.printStackTrace();
        }

        }
这就产生了:

    <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<settings>
<port>3306</port>
<address>127.0.0.1</address>
<pass>password</pass>
<database>A1</database>
</settings>
如何将这些文本节点作为字符串数组检索?

试试这个

    NodeList nodes = docBuilder.parse(new File("1.xml")).getDocumentElement().getChildNodes();
    String[] a = new String[4];
    for (int i = 0, j = 0; i < nodes.getLength(); i++) {
        Node n = nodes.item(i);
        if (n instanceof Element) {
            a[j++] = n.getTextContent().trim();
        }
    }

我忘了提到,这非常有效,谢谢: