我有一个具有以下结构的XML文件:
<?xml version="1.0">
<person>
<element att1="value1" att2="value2">Anonymous</element>
</person>
如何使用您想要的监视器提取属性名称和值。
我尝试过JDOM,但我仍然找不到从元素中获取属性的方法。
Element root = doc.getRootElement();
List allChildren = root.getChildren();
Iterator i = listEtudiants.iterator();
while(i.hasNext())
{
Element current = (Element)i.next();
System.out.println(current.getChild("elementName").getText());
// this let me get just the value inside > anf </
// so, if it's can be done by completing this code
// it will be something like current.getSomething()
}
编辑:我仍然遇到此文件的问题。我无法达到foo属性及其价值moo。
<?xml version="1.0" encoding="UTF-8"?>
<person>
<student att1="v1" att2="v2">
<name>Michel</name>
<prenames>
<prename>smith</prename>
<prename>jack</prename>
</prenames>
</student>
<student classe="P1">
<name foo="moo">superstar</name>
</student>
</person>
答案 0 :(得分:3)
如果您确实知道该属性的名称,则可以使用getAttributeValue
获取其值:
current.getAttributeValue("att1"); // value1
如果您不知道属性的名称,那么您可以使用getAttributes()
并迭代每个Attribute
:
List attributes = current.getAttributes();
Iterator it = attributes.iterator();
while (it.hasNext()) {
Attribute att = (Attribute)it.next();
System.out.println(att.getName()); // att1
System.out.println(att.getValue()); // value1
}
答案 1 :(得分:2)
使用JDOM(org.jdom.Element) 只需使用:
current.getAttributes();
current.getAttributesValues();
current.getAttributeValue("AttributeName");
以下是文档: http://www.jdom.org/docs/apidocs/org/jdom/Element.html
编辑:以下是您可以使用getAttributes()
List<Attribute> l_atts = current.getAttributes();
for (Attribute l_att : l_atts) {
System.out.println("Name = " + l_att.getName() + " | value = " + l_att.getValue());
}
编辑2:对于您的foo和moo问题,您只是不要在正确的getAttributes
上致电Element
。首先必须在调用它之前使用name元素,如果你使用简单的循环而没有从你交叉的元素中获取子元素,那么你只会遍历“Student”元素。