我有这个特殊的XML文件,它看起来像这样:
<App01_Storage Type="VOLATILE" Size="200000" Speed="15" LatencyMaxWrite="1" LatencyMaxRead="2" Endurance="12" WorkloadPeak="15" />
在我的程序中,我遍历根节点的所有子节点。我的目的是让所有孩子都拥有他们的属性+值。一个孩子看起来像上面的代码。
System.out.println(node.getName());
System.out.println(node.getAttributes());
System.Out-Method为我提供了以下输出: App01_Storage [[Attribute:Type =“VOLATILE”],[Attribute:Size =“200000”],[Attribute:Speed =“15”],[Attribute:LatencyMaxWrite =“1”],[Attribute:LatencyMaxRead =“2”] ,[属性:Endurance =“12”],[属性:WorkloadPeak =“15”]]
我想我的方式正确。根据我的理解,一个属性应该如下:Attribute.Name = Attribute.Value
我想将属性和值保存在不同的类中,并且不知道我是如何确切地获取值加上名称的separetaly。我现在得到的输出是一个List,每个条目的Attributename = Attributevalue,就像一个String。使用这个单一的字符串,我无法工作。
我看到了什么问题吗?希望我能解释一下自己。非常感谢:)
答案 0 :(得分:2)
node.getAttributes()
为您提供了可以重复迭代的属性列表。您看到的输出只是列表toString()
方法的结果,当您将其移交给System.out.println()
时会调用该方法。
做这样的事情:
for(Attribute attribute : node.getAttributes()) {
String attributeName = attribute.getName();
String value = attribute.getValue();
}
还有其他已经返回特定类型的get方法(如getIntValue()
)。查看Attribute
documentation