2015-08-24 31 views
0

我想從modules節點獲取文本上下文,但它會從樹中返回額外的值。爲什麼我從DOM解析器中獲取額外的節點內容

<modules>New Enterprise Development 
    <credits>15</credits> 
    <level>M</level> 
    <core_or_optional>core</core_or_optional> 
</modules> 
<modules>Computing Law, Contracts and Professional Responsibility 
    <credits>15</credits> 
    <level>M</level> 
    <core_or_optional>core</core_or_optional> 
</modules> 

解析代碼:

for (int j=0; j<NodelistB.getLength(); j++){ 
    Node xPathNode = NodelistB.item(j); 
    Element xPath = (Element)xPathNode; 
    targetNodeContent = xPath.getTextContent(); 
    targetNode = xPath.getTagName(); 
    System.out.println(targetNodeContent) ; 
    System.out.println() ;  
} 

我預期的返回值是:

New Enterprise Development 
Computing Law, Contracts and Professional Responsibility 

但它打印出以下幾點:

New Enterprise Development 
15 
M 
core     

Computing Law, Contracts and Professional Responsibility 
15 
M 
core 

回答

0

閱讀javadocgetTextContent()

此屬性返回此節點及其後代的文本內容。

+0

所以,我怎樣才能得到它的第一個decendant? –

+0

'getFirstChild()' – Andreas

0

您的XML無效(或不如您想象的那樣)。你應該使用這些格式之一:

<modules name="New Enterprise Development"> 
    <credits>15</credits> 
    <level>M</level> 
    <core_or_optional>core</core_or_optional> 
</modules> 

<modules> 
    <name>New Enterprise Development</name> 
    <credits>15</credits> 
    <level>M</level> 
    <core_or_optional>core</core_or_optional> 
</modules> 

(也,你應該使用「模塊」,而不是「模塊」)

相關問題