gpt4 book ai didi

java - 获取 XML 文件中所有属性的名称

转载 作者:行者123 更新时间:2023-12-03 18:20:25 25 4
gpt4 key购买 nike

嘿,我有一个 XML 文件,我想导航到给定的节点并获取该节点的所有属性的名称。

例如:(XML 文件)

<RootName>
<SubNode>
<Attribute1>Value 1</Attribute1>
<Attribute2>Value 2</Attribute2>
</SubNode>
</RootName>

到目前为止,这是我的代码:(Java 代码)

File file = new File("data.xml");
try
{
/* Parse File */
DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
Document doc = builder.parse(file);

/* Find Starting Tag */
NodeList nodes = doc.getElementsByTagName(StartTag);
for (int i = 0; i < nodes.getLength(); i++)
{
Element element = (Element) nodes.item(i);
System.out.println(element);

}

现在我知道你可以找到给定名称的特定属性

String name = element.getAttribute("Attribute1");    

但我想动态地找到所有这些名字。

提前致谢

-斯科特

最佳答案

您正在寻找的是元素。以下是有关如何获取 XML 中的元素的示例:

import java.io.*;
import javax.xml.parsers.*;
import org.w3c.dom.*;
import org.xml.sax.*;

public class DOMElements{
static public void main(String[] arg){
try {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
System.out.print("Enter XML File name: ");
String xmlFile = bf.readLine();
File file = new File(xmlFile);
if(file.exists()){
// Create a factory
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
// Use the factory to create a builder
DocumentBuilder builder = factory.newDocumentBuilder();
Document doc = builder.parse(xmlFile);
// Get a list of all elements in the document
NodeList list = doc.getElementsByTagName("*");
System.out.println("XML Elements: ");
for (int i=0; i<list.getLength(); i++) {
// Get element
Element element = (Element)list.item(i);
System.out.println(element.getNodeName());
}
}
else{
System.out.print("File not found!");
}
}
catch (Exception e) {
System.exit(1);
}
}
}

另请参阅我在关于如何正确设计 XML 以及何时使用元素以及何时使用属性的问题下方的评论。

关于java - 获取 XML 文件中所有属性的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3273682/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com