Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java DOM4J选择子节点_Java_Xpath_Dom4j - Fatal编程技术网

Java DOM4J选择子节点

Java DOM4J选择子节点,java,xpath,dom4j,Java,Xpath,Dom4j,我有标签簿,然后我读出2个节点 CCUSTBLS_Kundennumerbls 曼丹菲布 在这之后,我有了节点“Lieferadrisse”。现在我想要有一个循环,循环通过节点“Lieferaddress”。我的问题是,我每次都看到所有的孩子都是“Lieferadrisse”,而不仅仅是第一个“Lieferadrisse”的孩子。我认为我的Xpath是错误的 <?xml version="1.0" encoding="utf-8"?> <eDoc> <boo

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

CCUSTBLS_Kundennumerbls

曼丹菲布

在这之后,我有了节点“Lieferadrisse”。现在我想要有一个循环,循环通过节点“Lieferaddress”。我的问题是,我每次都看到所有的孩子都是“Lieferadrisse”,而不仅仅是第一个“Lieferadrisse”的孩子。我认为我的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>

使用相对路径
*
并调用
节点
变量上的
选择节点
方法,例如
节点。选择节点(“*”
())。如果您知道您对子元素感兴趣,那么您也可以访问
节点.elements()
(),如果您首先强制转换到
元素
节点..

Mhm我现在使用计数器。你认为这样可以吗?
列出节点leiferaddress=node.selectNodes(//lieferadress[“+counterdeliveryaddress+”])
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
------------------------------------------------------