簡體   English   中英

XML節點和子節點

[英]XML Node and Child Nodes

header = new LinkedHashMap<String,Object>();
Element headerElement = (Element)doc.getElementsByTagName( "Header").item(0);
NodeList elementList = headerElement.getElementsByTagName( "*" );
for( int index =0; index < elementList.getLength(); index++ ){
    Node element = elementList.item(index);
    System.out.println( element.getChildNodes().item(0).getTextContent() ); // Statement A          
    System.out.println( element.getTextContent()); // Statement B

語句A和語句B都打印相同的輸出。

這是什么意思,每個節點本身就是一個子節點??

輸入的XML是

<Header>
    <tag1>1</tag1>
    <tag2>2</tag2>
    <tag3>3</tag3>
    <tag4>4</tag4>
</Header>

Node.getTextContent()文檔中 ,了解ELEMENT_NODE的節點類型:

每個子節點(不包括COMMENT_NODE和PROCESSING_INSTRUCTION_NODE節點)的textContent屬性值的串聯。 如果節點沒有子節點,則為空字符串。

而對於文本節點,該方法的返回值僅是nodeValue ,即節點的文本。

所以是的-在具有單個子節點(即文本節點)的元素上調用此方法, 獲得與直接在該文本節點上調用它相同的結果。 但是在其他情況下,您會得到不同的結果。 例如,如果您具有這樣的元素:

<tag>1<break />2</tag>

將會有兩個子文本節點和一個子元素節點,結果將為“ 1 2”(或可能為“ 12”;我不確定副手的級聯間隔如何工作,但您可以檢查)。

這與“包含自身”的節點無關,而僅與此方法的定義有關。

getTextContent()返回返回此節點及其后代的文本內容。

tag1執行的語句A返回下面的文本節點( 1

在同一位置執行的語句B獲取tag1的子節點(具有一個文本節點的列表),選擇第一個(唯一的)文本節點並顯示其文本值。

在這種情況下,它們是同一件事。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM