遇到了一个小问题,我什至知道如何在理论上解决它,但实际上无法让它运行。
我得到了这段代码:
Multimap<String, String> mm = HashMultimap.create();
public MultiMapper(String AttributeName, String AttributeValue)
{
mm.put(AttributeName, AttributeValue); }
从这里调用它:
for(Element attributeFirst : attributeTop.getChildren()) {
String attributeTopName = attributeTop.getName().toString();
MultiMapper m = new MultiMapper();
for(Attribute attributeSecond: attributeFirst.getAttributes()){
String AttributeName = attributeSecond.getName().toString();
String AttributeValue = attributeSecond.getValue().toString();
m.MultiMapper(AttributeName, AttributeValue);
}
}
XML 文件:
编辑: main-Method(我更改了它的名称)的唯一目的是创建一个新的 Multimap 并用值填充其字段。例如:第一个 for 循环有 5 个元素,所以我想生成 5 个不同的 Multimap,这是我现在最关心的问题,无法得到它。第二个 for 循环包含映射的值,这些值通过 main 方法中的 put 放入映射中。
困扰我的第二个问题:attributeTopName 是父节点的名称,我想故意这样命名 Map。但是你不能将Datatype String映射到Multimap。那么我怎样才能把这个Attribute作为一种键放入映射中,这样当我想引用那个列表时,我使用attributeNameTop值来获取Multimap。就像在 Codeexample 中一样,我想要的不是 mm,而是 attributeNameTop 的值。
我希望这个编辑可以让我更清楚我想要做什么。
Edit2:我的 Inputfile 看起来像这样,当然有更多的行,想保持简单。每一行代表我的类图中的一个类,以及它的属性和值。我想为每个类创建一个对象并将其保存在某个地方以供在项目中进一步使用。当我遍历 Inputfile 时,我将 AttributeTopName1 作为第一个类,然后应该创建一个具有相同名称的新对象,以及我通过下一个循环获得的属性。我测试了它,输入文件是正确的格式,解析对于这个任务来说是可以的。
<Model>
<Package>
<AttributeTopName1 Attribute1=AttributeValue1 Attr2=AttributeValue2 />
<AttributeTopName2 Attribute1=AttributeValue1 Attr2=AttributeValue2 />
</Package>
</Model>