DOM の観点から見ると、HTML は XML のようなツリー構造のドキュメントです。各ノードは、さまざまなタイプの Node オブジェクトとして扱われます。各 Node オブジェクトには独自のプロパティとメソッドがあり、これらを使用してドキュメント ツリー全体を走査できます。 DOM は、ノードのタイプを表す nodeType を定義します
インターフェース |
nodeType 定数 |
nodeType 値 |
備考
|
||
要素
|
Node.ELEMENT_NODE
|
1
|
要素ノード
|
||
テキスト
| Node.TEXT_NODE
| テキストノード||||
ドキュメント |
ノード |
コメント |
Node.COMMENT_NODE |
||
|
DocumentFragment |
Node.DOCUMENT_FRAGMENT_NODE |
|||
|
属性 |
Node.ATTRIBUTE_NODE |
2 |
ノード属性 |
DOM ツリーのルート ノードは Document オブジェクトであり、ドキュメントがドキュメント全体を指す場合もあります。
Document で定義されているメソッドのほとんどは生成メソッドであり、主にドキュメントに挿入できるさまざまなタイプのノードを作成するために使用されます。一般的に使用される Document メソッドは次のとおりです:
メソッド |
description |
createAttribute() | 指定された名前で新しい Attr ノードを作成します。 |
createComment() |
指定された文字列を使用して新しい Comment ノードを作成します。 |
createElement() |
指定されたタグ名で新しい要素ノードを作成します。 |
createTextNode() |
指定されたテキストを含む新しい TextNode ノードを作成します。 |
getElementById() |
ドキュメント内の指定された id 属性を持つ要素ノードを返します。 |
getElementsByTagName() |
ドキュメント内の指定されたタグ名を持つすべての要素ノードを返します。 |
一般的に使用される要素メソッド:
Method |
Description |
getAttribute() |
指定された属性の値を文字列形式で返します。 |
getAttributeNode() |
指定された属性の値を Attr ノードの形式で返します。 |
getElementsByTabName() |
指定されたタグ名を持つすべての要素ノードの子孫ノードをドキュメント内に出現する順序で含むノード配列を返します。 |
hasAttribute() |
要素に指定された名前の属性がある場合に true を返します。 |
removeAttribute() |
指定された属性を要素から削除します。 |
removeAttributeNode() |
指定された Attr ノードを要素の属性リストから削除します。 |
setAttribute() |
指定された属性を指定された文字列値に設定するか、属性が存在しない場合は新しい属性を追加します。 |
setAttributeNode() |
指定された Attr ノードを要素の属性リストに追加します。 |
ノードがElement の場合、その要素の属性が NamedNodeMap の形式で返されます。 |
|
は、現在のノードの子ノードをNode[]の形式で格納します。子ノードがない場合は、空の配列が返されます。 |
firstChild |
現在のノードの最初の子ノードを Node の形式で返します。子ノードがない場合は null 。 |
|
現在のノードの最後の子ノードを Node の形式で返します。子ノードがない場合、これは null になります。 |
次の兄弟 | 現在のノードの兄弟である次のノードを Node の形式で返します。そのようなノードが存在しない場合は、null が返されます。 |
nodeName |
ノードの名前。ElementノードはElementのタグ名を表します。 |
nodeType |
はノードのタイプを表します。 |
parentNode |
現在のノードの親ノードを Node の形式で返します。親ノードがない場合、これは null になります。 |
previousSibling |
現在のノードの直前の兄弟ノードをNodeの形式で返します。そのようなノードが存在しない場合は、null が返されます。 |
Node オブジェクトの一般的なメソッド:
Method |
Description |
appendChild() |
の childNodes[] にノードを追加することで、現在のノード グループ、ドキュメント ツリーにノードを追加します。 |
cloneNode() |
現在のノードをコピーするか、現在のノードとそのすべての子孫ノードをコピーします。 |
hasChildNodes() |
現在のノードに子ノードがある場合は true を返します。 |
insertBefore() |
ノードをドキュメントツリーに挿入し、現在のノードの指定された子ノードの前に配置します。ノードがすでに存在する場合は、それを削除し、その場所に挿入します。 |
removeChild() |
指定された子ノードをドキュメントツリーから削除して返します。 |
replaceChild() |
指定された子ノードをドキュメントツリーから削除して返し、別のノードに置き換えます。 |
以下のコードは、最初の
x=xmlDoc.getElementsByTagName("title")[0].childNodes[0];txt=x.nodeValue; //其实应该先判断节点是否存在
結果: txt = "Harry Potter"
以下 このコードは、最初の
txt=xmlDoc.getElementsByTagName("title")[0].getAttribute("lang");
結果: txt = "en"
以下のコード最初の
x=xmlDoc.getElementsByTagName("title")[0].childNodes[0];x.nodeValue="Easy Cooking";
x=xmlDoc.getElementsByTagName("book");for(i=0;i<x.length;i++) { x[i].setAttribute("edition","first"); }
次のコード スニペットは、最初の
newel=xmlDoc.createElement("edition");
newtext=xmlDoc.createTextNode("First");
以上がXML学習(2) XML文書に対するDOM操作を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。