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