【问题标题】:How to read Data Dynamically From XML File如何从 XML 文件中动态读取数据
【发布时间】:2012-08-02 09:11:11
【问题描述】:

我需要动态地从 xml 文件中读取数据。我有 70 个标签名称以行的形式读取和存储数据。通过查看上面的代码,我可以根据需要读取数据,但是如何使用 getTagValue(,) 手动编写所有标记名,如何将数据动态检索到 getTagValue(,)。我在上面的链接中发布了一些我尝试过的代码

public class ParseXML {

    public static void main(String argv[]) {

      try {

        File fXmlFile = new File("data/Hotel.xml");
        DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
        DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
        Document doc = dBuilder.parse(fXmlFile);
        doc.getDocumentElement().normalize();

        System.out.println(doc.getDocumentElement().getNodeName());
        NodeList nList = doc.getElementsByTagName("staff");
        System.out.println("-----------------------");

        for (int i = 0; i < nList.getLength(); i++) {

           Node nNode = nList.item(i);
           if (nNode.getNodeType() == Node.ELEMENT_NODE) {

              Element eElement = (Element) nNode;

              String firstname=getTagValue("firstname", eElement);
              String lastName=getTagValue("lastname", eElement);
             String nickname=getTagValue("nickname", eElement);
             String salary=getTagValue("salary", eElement);
             System.out.println(firstname+" ," + lastName+" ," + nickname+" ," + salary);
           }
        }
      } catch (Exception e) {
        e.printStackTrace();
      }
  }

  private static String getTagValue(String sTag, Element eElement) {
    NodeList nlList = eElement.getElementsByTagName(sTag).item(0).getChildNodes();

        Node nValue = (Node) nlList.item(0);

    return nValue.getNodeValue();
  }

}

How to modify XML data in Dom parser

【问题讨论】:

  • 不清楚你想说什么。您已经在 getTagValue() 中编写了标记名
  • 在上面的代码中,我只写了 4 个标签名,但是如果我有 150 个标签名,那么如何单步循环所有标签名

标签: java xml-parsing


【解决方案1】:

有没有办法将标签名称动态生成为私有静态字符串getTagValue(String sTag, Element eElement)"stag" 而不是手动将"firstName","lastName","nickName","Salary" 声明为

String firstname=getTagValue("firstname", eElement);           
String lastName=getTagValue("lastname", eElement);             
String nickname=getTagValue("nickname", eElement);              
String salary=getTagValue("salary", eElement); 

听说我声明了 4 个标记名称,如果我有 150 个标记名称,它真的很难手动编写 150 个标记名称。有没有办法动态生成“stag”

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-07-18
  • 2021-01-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多