0

私はXMLDOMツリー構造と本当に混乱しています。

たとえば、私はこのXMLを持っています

<?xml version="1.0" encoding="UTF-8"?>
<Container>
    <Group>             
    </Group>
    <Group2>                
    </Group2>
</Container>

コンテナノードは2つの子だけで構成されるべきではありませんか?グループとグループ2?

File fXmlFile = new File("Test2.xml");
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(fXmlFile);
doc.getDocumentElement().normalize();
Node firstNode = doc.getDocumentElement();
if (firstNode.getNodeName().toString().equals("Container")) {
    // Process container here
    Container container = new Container(); 
    System.out.println(firstNode.getChildNodes().getLength()); // why print out 5?

}
4

2 に答える 2

1

間にはTEXTタイプのノードがあるためです。それらは暗黙のノードです。

<?xml version="1.0" encoding="UTF-8"?>
<Container>
    <!-- TEXT -->
    <Group>             
    </Group>
    <!-- TEXT -->
    <Group2>                
    </Group2>
    <!-- TEXT -->
</Container>

ノードGroupおよびGroup2はELEMENTタイプです。ほとんどの場合、XMLに従うと2カウントになります。

<?xml version="1.0" encoding="UTF-8"?>
<Container><Group></Group><Group2></Group2></Container>
于 2012-07-24T03:53:40.827 に答える
0

ドキュメント内の任意の場所にテキストノード(この場合は空白のみを含む)を見つける準備を常にする必要があります。一部のパーサーは空白を破棄します。他のパーサーはそれを保持し、これらのノードを作成します。すべてのノードのタイプを確認する必要があります。

于 2012-07-24T03:54:09.640 に答える