JDOM:找不到符号getAttribute()

时间:2016-02-05 08:26:18

标签: java xml jdom-2 getattribute

我想获得一个存储在keystore.xml中的密钥名称列表:

DisplayStyle

不幸的是,Netbeans说它找不到符号keyNameAttribute = keyList.get(i).getAttribute(" name");"。我不明白为什么它不起作用。你有什么主意吗?这是我的代码:

<?xml version="1.0" encoding="ISO-8859-1"?>
<keystore>
<key name="key-01">
    <Verwendungszweck></Verwendungszweck>
    <Generation></Generation>
    <Version></Version>
    <Algorithmus></Algorithmus>
    <Keylength></Keylength>
    <Blocklength></Blocklength>
</key>

<key name="key-02">
    <Verwendungszweck></Verwendungszweck>
    <Generation></Generation>
    <Version></Version>
    <Algorithmus></Algorithmus>
    <Keylength></Keylength>
    <Blocklength></Blocklength>
</key>
</keystore>

1 个答案:

答案 0 :(得分:3)

基本上,您需要使用泛型。您目前正在使用原始类型 - 因此keyList.get(i)Object类型的表达式。使用增强的for循环(或Java 8流)也会更清晰 - 目前你的for循环无论如何都有不合适的上限。

我怀疑你想要(pre-Java 8):

List<String> keyNameList = new ArrayList();
Element keystore = document.getRootElement();
for (Element element : keystore.getChildren("key")) {
    keyNameList.add(element.getAttribute("name").getValue());
}

(您应该声明您的方法也返回List<String>。)

如果您已经不熟悉泛型,我会强烈建议您立即阅读它们。它们是现代Java编程中非常重要的一部分。