当前位置: 主页 > JAVA语言

java doc xml字符串-xml字符串赋值doc

发布时间:2023-02-10 07:23   浏览次数:次   作者:佚名

Java 读取 XML 并将文本节点放入字符串数组?

javaxml

Java 读取 XML 并将文本节点放入字符串数组? ,java,xml,java,Xml,如果有人问我这个问题,我很抱歉,我已经谷歌搜索了一个多小时,似乎无法弄清楚该怎么做我已经为我的应用程序创建了一个'我正在制作存储在 XML 中的配置文件,我已经让应用程序成功创建了 XML 文件,如果它不存在,请使用 DOM 代码,以备不时之需 public static void newConfig() { try { DocumentBuilderFactory docFactory = DocumentBuilderFactory. 新实例(

如果有人问我这个问题,我很抱歉,我已经在谷歌上搜索了一个多小时java doc xml字符串,似乎无法弄清楚该怎么做

我已经为我正在制作的应用程序创建了一个配置文件,该文件存储在 XML 中java doc 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();
        }
        }

这产生:

    

3306
127.0.0.1
password A1

如何将这些文本节点检索为字符串数组?

尝试这个

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

我忘了说,这很完美,谢谢: