如何在java中读取通用XML文件

如何在java中读取通用XML文件,java,xml,Java,Xml,我正在寻找读取通用xml文件的方法 下面是一个普通xml文件的示例 <?xml version="1.0"?> <students> <student> <name>John</name> <grade>B</grade> <age>12</age> </student> <student>

我正在寻找读取通用xml文件的方法

下面是一个普通xml文件的示例

 <?xml version="1.0"?>
<students>
    <student>
        <name>John</name>
        <grade>B</grade>
        <age>12</age>
    </student>
    <student>
        <name>Mary</name>
        <grade>A</grade>
        <age>11</age>
    </student>
    <student>
        <name>Simon</name>
        <grade>A</grade>
        <age>18</age>
    </student>
</students>
为了正确工作


我的问题来自于我将如何使其通用化。是否有任何方法可以让我读取相同的XML文件,而不必通过标记名获取特定元素,并且仍然以可查看的格式打印出来。

在上面的示例中,您使用的是Dom解析器。通过使用Jaxb上下文解组器,您可以将xml转换为java对象,然后完成任务

您需要有一个通用函数来处理

通用功能如下:

/* Prints the Node Value */
public void PrintNodeValue(Element element, String tagName, String msg)
{
    NodeList nodeList = element.getElementsByTagName(tagName);
    System.out.println(msg + nodeList.item(0).getChildNodes().item(0).getNodeValue());
}
函数的调用如下所示:

PrintNodeValue(e, "name", "Name: ");
PrintNodeValue(e, "grade", "Grade: ");
/* Prints the Node Value */
public void PrintNodeValue(Element element, String tagName, String msg)
{
    NodeList nodeList = element.getElementsByTagName(tagName);
    System.out.println(msg + nodeList.item(0).getChildNodes().item(0).getNodeValue());
}
PrintNodeValue(e, "name", "Name: ");
PrintNodeValue(e, "grade", "Grade: ");