我的xml文件中有以下内容,基本上我正在尝试更改xml文档的属性
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<root level="DEBUG">
</root>
</configuration>
这是我的java文件
public static void changeXMLLogLevel(String pathToXMLDocument, String newWarnLevel){
// make sure that xml file is present
File f = new File(pathToXMLDocument);
if (f.exists()) {
try {
DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
Document doc = docBuilder.parse(pathToXMLDocument);
// Get the warn level
Node warnLevel = doc.getElementsByTagName("root").item(0);
System.out.println("The warn level is: " + warnLevel);
// more code..................
出于某种原因,虽然我的xml文档中有一个名为root的标记,但警告级别为空。
这是我输出的结果
The warn level is: [root: null]
答案 0 :(得分:2)
我认为你误解了你的输出。有了这个
Node warnLevel = doc.getElementsByTagName("root").item(0);
您在xml中获得了单个root
标记。该对象的toString()
是标记的名称和节点的值,但显然是it always returns null
for element nodes。
您想要的是获取属性level
。
Node warnLevel = doc.getElementsByTagName("root").item(0).getAttributes().getNamedItem("level");
System.out.println("The warn level is: " + warnLevel);
打印
level="DEBUG"