java - java中如何从XML中获取父元素属性和子元素值?

标签 java xml xml-parsing

我有一个 XML 文件,例如:

<parent value="first">
  <child>Bill</child>
</parent>

我想得到输出:value=first,child=Bill 这意味着我需要来自父元素的属性和来自子元素的值。

我尝试做这样的事情:

List<Str> obj = new ArrayList<Str>();
NodeList nList  = doc.getElementsByTagName("parent");
for (int i = 0; i < nList.getLength(); ++i) {
    Element attrElement = (Element) nList.item(i);
    NamedNodeMap map = attrElement.getAttributes();
       for (int j = 0; j < map.getLength(); j++) {
            Node attribute = map.item(j);
            Node eNode = nList.item(j);
            Element name = (Element) eNode;
            obj.add(new Str(attribute.getNodeValue(), name.getElementsByTagName("child").item(0).getTextContent()));
       }
    }

结果我的 Str 值为“null”。

最佳答案

像这样使用

      List<String> obj = new ArrayList<String>();
      NodeList nList  = doc.getElementsByTagName("parent");
      for (int i = 0; i < nList.getLength(); ++i) {
          NamedNodeMap map = nList.item(i).getAttributes();
             for (int j = 0; j < map.getLength(); j++) {
                  Node attribute = map.item(j);
                  Node eNode = nList.item(i); // Use i value here that is the issue. 
                  Element name = (Element) eNode;
                  obj.add(new String("Value = "+attribute.getNodeValue() + ",Child=" + 
                      name.getElementsByTagName("child").item(0).getTextContent()));
             }
          }

添加一个外部元素,适用于多个标签

<xml><parent value=first> 
    <child>Bill</child></parent> <parent value=second> <child>Steve</child>
</parent></xml>

关于java - java中如何从XML中获取父元素属性和子元素值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24306682/

相关文章:

java - 寻找使用 JUnit 和 Ant 的开源 Java 项目

java - 包含不同类型对象的 ArrayList 是否使用不同数量的内存?

java - 我在状态栏下没有点击

python - 扩展 pyyaml 以像 xml ElementTree 一样查找和替换

java - Java 中的 XML 解析器应返回已使用的已定义类的 Arraylist

Oracle Clob 保存复杂的 XML;如何使用Xquery选择特定数据

java - Canvas 游戏渲染卡住电脑

java - 如何从 Spring HandlerInterceptor 查找在 Handler 上调用的方法?

ruby-on-rails - 在 Ruby on Rails 中使用 Savon 的 SOAP 调用在信封和主要操作周围变得奇怪

java - XMLStreamReader 跳过没有属性的元素