java - 如何在xml文件中获取java中children的属性?

标签 java xml

我在javascript和java中读取了xml文件,在javascript中我读得很好,但在java中我发现很难,这是我的xml文件的一部分:

<Objects>
<TemplateDef title="false" >
<fields relType="0">
<TemplateField  englishName="Login" >
<fieldType relType="2">
<TemplateFieldType  visibleName="String" realType="String" />
</fieldType>
</TemplateField>
<TemplateDef title="false" >
<fields relType="0">
<TemplateField  englishName="Login1" >
<fieldType relType="2">
<TemplateFieldType  visibleName="int" realType="int" />
</fieldType>
</TemplateField>
</TemplateDef >
</Objects>

我想访问“visibleName”的属性,我可以通过以下代码在 javascript 中实现:

var obj1 = xmlDoc.getElementsByTagName("TemplateDef");
                        objattr=obj1[1].getElementsByTagName("TemplateField");
                          for (var i = 0; i< objattr.length; i++) 
                          {
                              //alert(y[5].getAttribute('name'));
                              if(objattr[i].getAttribute('name')!==null&&objattr[i].childNodes[0].childNodes[0].getAttribute('visibleName')!==null)
                                  {
                                  }
                          }

但是我尝试在java中编写相同的代码来访问属性“visiablename”,但我失败了,我在java中的尝试:

            Element  nodeclass =(Element) nList.item(1);
                NodeList nList1 = nodeclass.getElementsByTagName("TemplateField");
                  for (int i = 0; i< nList1.getLength(); i++) 
                  {
                      Node tempnode = nList1.item(i);
                      if (tempnode.getNodeType() == Node.ELEMENT_NODE ) {

                            Element eElement = (Element) tempnode;
                            if(eElement.getAttribute("name")!=null && eElement.getFirstChild().getFirstChild().getAttribute("visibleName")!=null)
// here error because getAttribute not take parameter as string
                               {

                               }
                      }

此处编译器错误 eElement.getFirstChild().getFirstChild().getAttribute("visibleName")!=null) //这里错误,因为 getAttribute 没有将参数作为字符串

那么有人可以帮助我用java编写代码吗?

最佳答案

尝试转换为元素:

Element e = (Element)eElement.getFirstChild().getFirstChild();
String visibleName = e.getAttribute("visibleName");

关于java - 如何在xml文件中获取java中children的属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45210286/

相关文章:

java - 获取文本直到 Java 中的第二个括号

javascript - 忽略 JavaScript 中的空 XML 节点

c# - 使用 XmlDocument 导出 Excel 表格的 XML

python - XML 解析器语法错误

java - 确保 Java Play Framework 始终运行的最佳方法?

c# - 正则表达式 - 增量替换

java在控制台中绘制图形或树

java - 如何禁用 Jersey 2.x 中的日志记录

sql - 选择 SQL 查询以从 ntext 列获取 xml 节点值?

xml - 一个 XML 模式可以有多个 targetNameSpaces 吗?