我有一个关于 XML 和解析它的问题。我使用 JDOM 来解析我的 XML 文件,但我遇到了一个小问题。
我的 XML 文件示例如下所示:
<IO name="Bus" type="Class">
<ResourceAttribute name="Bandwidth" type="KiloBitPerSecond" value="50" />
</IO>
Bus 是类 IO 的对象实例。该对象获得了名称和类型属性。此外,它还有一些属性,例如示例中的属性带宽,值为 50,数据类型为 KiloBitPerSecond。
所以当我想循环文件时:
for(Element packages : listPackages)
{
Map<String, Values> valueMap = new HashMap<String, Values>();
List<Element> objectInstanceList = packages.getChildren();
for(Element objects : objectInstanceList)
{
List<Element> listObjectClasses = objects.getChildren();
for(Element classes : listObjectClasses)
{
List<Element> listObjectAttributes = classes.getChildren();
for(Element objectAttributes : listObjectAttributes)
{
List<Attribute> listAttributes = objectAttributes.getAttributes();
for(Attribute attributes : listAttributes)
{
String name = attributes.getName();
String value = attributes.getValue();
AttributeType datatype = attributes.getAttributeType();
Values v = new Values(name, datatype, value);
valueMap.put(classes.getName(), v);
System.out.println(name + ":" + value);
}
}
}
}
//System.out.println(valueMap);
}
values 是一个定义对象属性的类:
public class Values{
private String name;
//private AttributeType datatype;
private String value;
这就是代码的其余部分。我有两个与此相关的问题。目前第一个优先级更高。
如何获取对象的值(Attribute.Name = Bandwidth; Attribute.Value = 50) ?我反而得到
名称:巴士类型:等级
我考虑了一个额外的 for 循环,但 JDOM 类属性没有名为 getAttributes() 的方法。
那只是第二要务,因为没有问题 1 我不能走得更远。正如您在示例中看到的,一个属性有 3 个属性,名称、类型和值。我怎样才能提取样本的三重放置。JDOM 似乎只知道属性、名称和值的 2 个属性。
提前非常感谢,希望我能够表达自己。
编辑:在其中添加了一个额外的 for 循环,所以现在的输出是:
name:Bandwidth
type:KiloBitPerSecond
value:50
这意味着 name 是该属性的名称,而 value 是 name 的值。不知道。至少问题一现在更清楚了,我可以尝试处理 2,但新信息使 2 对我来说更清楚。