JDOM重复元素名称处理

时间:2012-09-14 04:35:24

标签: java

比如说我有这样的XML

    <Containers>
      <Container  ContainerGrossWeight="0.69"  ContainerGrossWeightUOM="lbs" ContainerScm="16757598166153847" TrackingNo="420913119102999949374063023016">
      </Container>
    <Container   ContainerGrossWeight="4.84" ContainerGrossWeightUOM="lbs" ContainerScm="16757598166153848" 
    TrackingNo="420913119102999949374063023016">
      </Container>
    </Containers>

所以“容器”是父,它有两个子..另一个..但两者中的属性值不同。

我使用JDOM来读取和操作值。如果我写下面的代码,我首先得到属性。我的问题是如何访问第二个属性和值?

Element Containers = rootNode.getChild("Containers")

Element Container = Containers.getChild("Container")

String ContainerSCM = Container.getAttributeValue("ContainerSCM")

上面的代码给出了“16757598166153847”作为输出 如何将“16757598166153848”作为第二个Element Containers属性的getAttributeValue输出?

1 个答案:

答案 0 :(得分:0)

使用Element.getChildren()将名为Containers的所有Container子项检索到List<Element>,然后选择第二个。

List<Element> containers = rootNode.getChild("Containers").getChildren("Container");
Element secondContainer = containers.get(1); // take the second one
String secondContainerSCRM = secondContainer.getAttributeValue("ContainerSCM");

或者您可以使用XPath使用//Containers/Container[2]直接选择所需的元素。