XML DOM - 属性とメソッド
- 前のページ DOM ロード
- 次のページ DOM ノードアクセス
属性とメソッドがXML DOMにプログラミングインターフェースを定義します。
例
以下の例ではXMLファイルを使用します books.xml。
関数 loadXMLDoc()、外部JavaScriptに配置されています。XMLファイルをロードするために使用されます。
関数 loadXMLString()、外部JavaScriptに配置されています。XML文字列をロードするために使用されます。
プログラミングインターフェース
DOMはXMLを一連のノードインターフェースとしてシミュレートします。JavaScriptや他のプログラミング言語でノードにアクセスできます。このチュートリアルではJavaScriptを使用します。
DOMのプログラミングインターフェースは、標準の属性とメソッドを通じて定義されています。
属性「何であるか」の形でよく使用されます(例えば、ノード名は "book")。
メソッドよく「何に対して何をするか」という方法で使用されます(例えば「book」ノードを削除する)。
XML DOM 属性
典型的な DOM 属性の一部:
- x.nodeName - x の名称
- x.nodeValue - x の値
- x.parentNode - x の親节点
- x.childNodes - x の子节点
- x.attributes - x の属性节点
注釈:上記のリストでは、x はノードオブジェクトです。
XML DOM メソッド
- x.getElementsByTagName(name) - 指定されたタグ名を持つすべての要素を取得
- x.appendChild(node) - x に子节点を挿入
- x.removeChild(node) - x から子节点を削除
注釈:上記のリストでは、x はノードオブジェクトです。
例
books.xml 内の <title> 要素からテキストを取得する JavaScript コード:
txt=xmlDoc.getElementsByTagName("title")[0].childNodes[0].nodeValue
このステートメントが実行された後、txt に保存される値は「Harry Potter」です。
説明:
- xmlDoc - 解析器によって作成された XML DOM
- getElementsByTagName("title")[0] - 最初の <title> 要素
- childNodes[0] - <title> 要素の最初の子节点(テキストノード)
- nodeValue - ノードの値(テキスト自身)
上記の例では、getElementsByTagName はメソッドであり、childNodes と nodeValue は属性です。
XML ファイルの解析 - クロスブラウザの例
以下のコードスニペットは loadXMLDoc 関数を使用して books.xml XML 解析器に読み込み、最初の book のデータを表示します:
xmlDoc=loadXMLDoc("books.xml"); document.write(xmlDoc.getElementsByTagName("title")) [0].childNodes[0].nodeValue); document.write("<br />"); document.write(xmlDoc.getElementsByTagName("author")) [0].childNodes[0].nodeValue); document.write("<br />"); document.write(xmlDoc.getElementsByTagName("year")) [0].childNodes[0].nodeValue);
出力:
ハリ・ポッター J K. Rowling 2005
上記の例では、每个テキストノードに childNodes[0] を使用しており、各要素がテキストノードを持っている場合でもです。これは getElementsByTagName メソッドが常に配列を返すためです。
XML 文字列の解析 - クロスブラウザの例
以下のコードは XML 文字列を読み込み解析します:
以下のコードスニペットは loadXMLString 関数を使用して books.xml XML 解析器をロードし、最初の book のデータを表示します:
text="<bookstore>" text=text+"<book>"; text=text+"<title>Harry Potter</title>"; text=text+"<author>J K. Rowling</author>"; text=text+"<year>2005</year>"; text=text+"</book>"; text=text+"</bookstore>"; xmlDoc=loadXMLString(text); document.write(xmlDoc.getElementsByTagName("title")) [0].childNodes[0].nodeValue); document.write("<br />"); document.write(xmlDoc.getElementsByTagName("author")) [0].childNodes[0].nodeValue); document.write("<br />"); document.write(xmlDoc.getElementsByTagName("year")) [0].childNodes[0].nodeValue);
出力:
ハリ・ポッター J K. Rowling 2005
- 前のページ DOM ロード
- 次のページ DOM ノードアクセス