gpt4 book ai didi

java - DOM4J 选择子节点

转载 作者:行者123 更新时间:2023-11-30 02:50:18 24 4
gpt4 key购买 nike

我有标签书,然后我读出了 2 个节点

CCUSTBLS_KundennummerBLS

CCOMP_MandantFIBU

在此之后,我有了节点“Lieferadresse”。现在我希望有一个循环遍历节点“Lieferadresse”。我的问题是,我每次都看到所有“Lieferadresse”的 child ,而不仅仅是第一个“Lieferadresse”的 child 。我认为我的 Xpath 是错误的。

<?xml version="1.0" encoding="utf-8"?>
<eDoc>
<book>
<CCUSTBLS_KundennummerBLS>1143</CCUSTBLS_KundennummerBLS>
<CCOMP_MandantFIBU>1</CCOMP_MandantFIBU>
<Lieferadresse>
<TSHIPBLS_NrLieferadresse>1</TSHIPBLS_NrLieferadresse>
<TCUSTBLS_Kunde>1143</TCUSTBLS_Kunde>

</Lieferadresse>
<Lieferadresse>
<TSHIPBLS_NrLieferadresse>2</TSHIPBLS_NrLieferadresse>
<TCUSTBLS_Kunde>1143</TCUSTBLS_Kunde>

</Lieferadresse>
<Lieferadresse>
<TSHIPBLS_NrLieferadresse>3</TSHIPBLS_NrLieferadresse>
<TCUSTBLS_Kunde>1143</TCUSTBLS_Kunde>

</Lieferadresse>
</book>
</eDoc>

Java 类

List<Node> nodes = document.selectNodes("/eDoc/book/child::*");
List<Node> list = nodes;

for (Node node : list) {
String nodeName = node.getName();

if("Lieferadresse".equals(nodeName)){
List<Node> nodesDelivery = document.selectNodes("//"+nodeName+"/child::*");
System.out.println("------------------------------------------------------");
for(Node nodeDelivery : nodesDelivery){
System.out.println(nodeDelivery.getName() + " " +nodeDelivery.getText());
}

}else{
System.out.println(nodeName + " " +node.getText());
}

}

结果:

    Root element :eDoc
CCUSTBLS_KundennummerBLS 1143
CCOMP_MandantFIBU 1
------------------------------------------------------
TSHIPBLS_NrLieferadresse 1
TCUSTBLS_Kunde 1143
TSHIPBLS_NrLieferadresse 2
TCUSTBLS_Kunde 1143
TSHIPBLS_NrLieferadresse 3
TCUSTBLS_Kunde 1143
------------------------------------------------------
------------------------------------------------------
TSHIPBLS_NrLieferadresse 1
TCUSTBLS_Kunde 1143
TSHIPBLS_NrLieferadresse 2
TCUSTBLS_Kunde 1143
TSHIPBLS_NrLieferadresse 3
TCUSTBLS_Kunde 1143
------------------------------------------------------
------------------------------------------------------
TSHIPBLS_NrLieferadresse 1
TCUSTBLS_Kunde 1143
TSHIPBLS_NrLieferadresse 2
TCUSTBLS_Kunde 1143
TSHIPBLS_NrLieferadresse 3
TCUSTBLS_Kunde 1143
------------------------------------------------------

最佳答案

使用相对路径*并在node变量上调用selectNodes方法,例如node.selectNodes("*") (http://dom4j.sourceforge.net/dom4j-1.6.1/apidocs/org/dom4j/Node.html#selectNodes(java.lang.String))。如果您知道您对子元素感兴趣,如果您首先转换为 Element 节点,也可以访问 node.elements() ( http://dom4j.sourceforge.net/dom4j-1.6.1/apidocs/org/dom4j/Element.html#elements() )。 p>

关于java - DOM4J 选择子节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38894645/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com