オブジェクトXmlドキュメント
XmlDocument は xmlXML ドキュメント全体を表し、ドキュメント全体へのアクセスを提供するモジュールのオブジェクト。
XmlDocument はドキュメント ツリーのルートであり、XML ドキュメント全体のすべてのノードが含まれます。XmlDocument オブジェクトは次の関数も提供します。
- 要素ノード、テキストノード、コメント、処理命令などを作成します。
- ドキュメントのプロパティと関連情報 (DTD コメントやドキュメント宣言など) にアクセスして変更します。
- XMLドキュメントを解析する
以下は、XmlDocument オブジェクトを使用して XML ドキュメントを解析するサンプル コードです。
1
2
3
4
5
6
7
8
9var xml = require('xml');
var fs = require('fs');
var xmlStr = fs.readFile('test.xml');
var xmlDoc = xml.parse(xmlStr);
// get document root node name
var rootName = xmlDoc.documentElement.nodeName;
console.log(`文档根节点名称是 ${rootName}`);
上記のコードでは、まずfs
modulereadFile()
メソッドを使用して XML ファイルを読み取り、ファイル ストリームを変数 に割り当てますxmlStr
。[xml](../../module/ifs/xml.md)
次に、モジュールのメソッドを使用してXML ファイルを解析し、parse()
解析されたオブジェクトを変数にXmlDocument
割り当てますxmlDoc
。xmlDoc
最後に、 の属性を使用してdocumentElement
ドキュメント ルート ノードを取得し、そのノード名を取得して、コンソールに出力します。
XmlDocument は XML ドキュメント全体への入り口であるため、XmlDocument を通じてドキュメント関連の情報を取得および変更できます。たとえば、xmlDoc.xmlVersion
と をそれぞれ使用してxmlDoc.xmlStandalone
、ドキュメントの XML バージョンとスタンドアロン属性を取得および変更できます。xmlDoc.createProcessingInstruction()
このメソッドを通じて新しい処理命令ノードを作成することもできます。
XmlDocument オブジェクトは、XML ファイルの処理と解析に非常に便利な非常に強力な型です。
相続関係
コンストラクタ
XmlDocument
XmlDocument オブジェクトを構築する
1new XmlDocument(String type = "text/xml");
呼び出しパラメータ:
- type: 文字列。ドキュメント オブジェクトのタイプを指定します。デフォルトは "text/xml"、htmlを処理する必要がある場合は、"text/html"を指定する必要があります
メンバーのプロパティ
inputEncoding
文字列、ドキュメントに使用されるエンコーディングを返します (解析時)
1readonly String XmlDocument.inputEncoding;
xmlStandalone
ブール値、ドキュメントがスタンドアロンかどうかを設定または返します。
1Boolean XmlDocument.xmlStandalone;
xmlVersion
ドキュメントの XML バージョンを文字列で設定または返します
1String XmlDocument.xmlVersion;
doctype
XmlDocumentType、ドキュメントに関連するドキュメント タイプ宣言を返します。
1readonly XmlDocumentType XmlDocument.doctype;
DTD のない XML ドキュメントの場合は、null が返されます。このプロパティが提供するのは、XmlDocumentTypeオブジェクト (XmlDocument の子ノード) への直接アクセス。
documentElement
XmlElement、ドキュメントのルートノードを返します。
1readonly XmlElement XmlDocument.documentElement;
head
XmlElement、HTML ドキュメントのヘッド ノードを返します。HTML モードでのみ有効です。
1readonly XmlElement XmlDocument.head;
title
文字列。HTML ドキュメントのタイトル ノードのコンテンツを返します。HTML モードでのみ有効です。
1readonly String XmlDocument.title;
body
XmlElement、HTML ドキュメントの本文ノードを返します。HTML モードでのみ有効です。
1readonly XmlElement XmlDocument.body;
nodeType
整数。ノードのノード タイプを返します。
1readonly Integer XmlDocument.nodeType;
オブジェクトが異なると、nodeType も異なる値を返します。
- XmlElement: ELEMENT_NODE(1)
- XmlAttr:ATTRIBUTE_NODE(2)
- XmlText: TEXT_NODE(3)
- XmlCDATASection: CDATA_SECTION_NODE(4)
- XmlProcessingInstruction: PROCESSING_INSTRUCTION_NODE(7)
- XmlComment:COMMENT_NODE(8)
- XmlDocument: ドキュメント_NODE(9)
- XmlDocumentType: ドキュメントタイプ_NODE(10)
nodeName
文字列。タイプに応じてノードの名前を返します。
1readonly String XmlDocument.nodeName;
オブジェクトが異なると、nodeName も異なる値を返します。
- XmlElement:要素名
- XmlAttr: 属性名
- XmlText: #文章
- XmlCDATASection: #cdata-セクション
- XmlProcessingInstruction: 指定されたターゲット target を返します。
- XmlComment: #コメント
- XmlDocument: #書類
- XmlDocumentType: ドキュメントタイプ名
nodeValue
文字列。タイプに応じてノードの名前を返します。
1String XmlDocument.nodeValue;
オブジェクトが異なると、nodeName も異なる値を返します。
- XmlElement: ヌル
- XmlAttr: 属性値
- XmlText: ノードの内容
- XmlCDATASection: ノードの内容
- XmlProcessingInstruction: 指定されたコンテンツデータを返します
- XmlComment: 注釈テキスト
- XmlDocument: ヌル
- XmlDocumentType: ヌル
ownerDocument
XmlDocument、ノードのルート要素 (XmlDocument オブジェクト) を返します。
1readonly XmlDocument XmlDocument.ownerDocument;
parentNode
XmlNode、ノードの親ノードを返すことができます
1readonly XmlNode XmlDocument.parentNode;
childNodes
XmlNodeList、指定されたノードの子ノードのノードリストを返します。
1readonly XmlNodeList XmlDocument.childNodes;
children
XmlNodeListは、指定されたノードの子要素ノードのノード リストを返します。
1readonly XmlNodeList XmlDocument.children;
firstChild
XmlNode、ノードの最初の子ノードを返します。
1readonly XmlNode XmlDocument.firstChild;
lastChild
XmlNode、ノードの最後の子ノードを返します。
1readonly XmlNode XmlDocument.lastChild;
previousSibling
XmlNodeは、(同じツリー レベルで) ノードの直前のノードを返します。そのようなノードがない場合、このプロパティは null を返します。
1readonly XmlNode XmlDocument.previousSibling;
nextSibling
XmlNodeは、(同じツリー レベル内の) 要素の直後にあるノードを返します。そのようなノードがない場合、属性は null を返します。
1readonly XmlNode XmlDocument.nextSibling;
firstElementChild
XmlNode、ノードの最初の子要素ノードを返します。
1readonly XmlNode XmlDocument.firstElementChild;
lastElementChild
XmlNode、ノードの最後の子要素ノードを返します。
1readonly XmlNode XmlDocument.lastElementChild;
previousElementSibling
XmlNode, ノード (同じツリー レベル) の直前の要素ノードを返します。そのようなノードがない場合、このプロパティは null を返します。
1readonly XmlNode XmlDocument.previousElementSibling;
nextElementSibling
XmlNode, (同じツリー レベル内の) 要素の直後にある要素ノードを返します。そのようなノードがない場合、属性は null を返します。
1readonly XmlNode XmlDocument.nextElementSibling;
textContent
選択した要素のテキストをクエリおよび設定する文字列。クエリの場合は、要素ノード内のすべてのテキスト ノードの値を返します。設定の場合は、すべての子ノードを削除し、単一のテキスト ノードに置き換えます。
1String XmlDocument.textContent;
メンバー関数
load
ドキュメントは XML/HTML 文字列を解析して作成されており、多言語はサポートされていません。
1XmlDocument.load(String source);
呼び出しパラメータ:
- source: 文字列。ドキュメント作成時のタイプに応じて、解析される XML/HTML テキスト。
ドキュメントはバイナリ XML/HTML 文字列を解析することによって構成され、言語に従って自動的に変換されます。
1XmlDocument.load(Buffer source);
呼び出しパラメータ:
- source:Buffer、作成時のドキュメントのタイプに応じて、解析される XML/HTML テキスト
getElementsByTagName
指定された名前を持つすべての要素を含むノード リストを返します。
1XmlNodeList XmlDocument.getElementsByTagName(String tagName);
呼び出しパラメータ:
- tagName: 文字列、取得するタグ名。値「*」はすべてのタグに一致します
返される結果:
- XmlNodeList、ドキュメントツリー内の指定されたタグを使用してXmlElementノーダルXmlNodeList集める。返される要素ノードの順序は、ソース ドキュメント内での出現順序となります。
このメソッドは、XmlNodeList指定されたタグ名を持つドキュメント内のすべてのタグを格納するオブジェクト (読み取り専用の配列として処理可能)XmlElementノードはソースドキュメントに出現する順序で保存されます。XmlNodeListオブジェクトは「ライブ」です。つまり、指定されたタグ名を持つ要素がドキュメント内で追加または削除されると、そのコンテンツは必要に応じて自動的に更新されます。
getElementsByTagNameNS
指定された名前空間と名前を持つすべての要素のノード リストを返します。
1
2XmlNodeList XmlDocument.getElementsByTagNameNS(String namespaceURI,
String localName);
呼び出しパラメータ:
- namespaceURI: 文字列。取得する名前空間 URI を指定します。値「*」はすべてのタグに一致します
- localName: 文字列、取得するタグ名。値「*」はすべてのタグに一致します
返される結果:
- XmlNodeList、ドキュメントツリー内の指定されたタグを使用してXmlElementノーダルXmlNodeList集める。返される要素ノードの順序は、ソース ドキュメント内での出現順序となります。
このメソッドは、名前空間と名前に基づいて要素を取得する点を除いて、getElementsByTagName() メソッドに似ています。
getElementById
指定された id 属性を持つ要素を返します
1XmlElement XmlDocument.getElementById(String id);
呼び出しパラメータ:
- id: 文字列、取得する ID
返される結果:
- XmlElement、ノード ツリー内の指定された id 属性を持つXmlElementノード
このメソッドは、ドキュメントの子孫ノードを走査し、XmlElement指定された id 属性を持つ最初のドキュメント要素を表すノード オブジェクト。。
getElementsByClassName
指定されたクラス名を持つすべての要素のノード リストを返します。
1XmlNodeList XmlDocument.getElementsByClassName(String className);
呼び出しパラメータ:
- className: 文字列、取得するクラス名
返される結果:
- XmlNodeList、ドキュメントツリー内の指定されたクラス名XmlElementノーダルXmlNodeList集める。返される要素ノードの順序は、ソース ドキュメント内での出現順序となります。
このメソッドは、XmlNodeListドキュメント内の指定されたクラス名を持つすべてのファイルを格納するオブジェクト (読み取り専用配列として処理可能)XmlElementノードはソースドキュメントに出現する順序で保存されます。XmlNodeListオブジェクトは「ライブ」です。つまり、指定されたタグ名を持つ要素がドキュメント内で追加または削除されると、そのコンテンツは必要に応じて自動的に更新されます。
createElement
要素ノードの作成
1XmlElement XmlDocument.createElement(String tagName);
呼び出しパラメータ:
- tagName: 文字列、要素ノードの指定された名前を指定します。
返される結果:
- XmlElement、新しく作成されたものを返しますXmlElement指定されたラベル名を持つノード
createElementNS
指定された名前空間で要素ノードを作成します
1
2XmlElement XmlDocument.createElementNS(String namespaceURI,
String qualifiedName);
呼び出しパラメータ:
- namespaceURI: 文字列、要素ノードの名前空間 URI を指定します。
- qualifiedName: 文字列、要素ノードの指定された名前を指定します。
返される結果:
- XmlElement、新しく作成されたものを返しますXmlElement指定されたラベル名を持つノード
createTextNode
テキストノードの作成
1XmlText XmlDocument.createTextNode(String data);
呼び出しパラメータ:
- data: 文字列、このノードのテキストを指定します
返される結果:
createComment
アノテーションノードの作成
1XmlComment XmlDocument.createComment(String data);
呼び出しパラメータ:
- data: 文字列、このノードのコメント テキストを指定します
返される結果:
- XmlComment、新しく作成されたものを返しますXmlCommentノード、コメントテキストは指定されたデータです
createCDATASection
作成するXmlCDATASectionノード
1XmlCDATASection XmlDocument.createCDATASection(String data);
呼び出しパラメータ:
- data: 文字列。このノードが CDATA データを指定することを指定します。
返される結果:
- XmlCDATASection、新しく作成されたものを返しますXmlCDATASectionノード、内容は指定されたデータです
createProcessingInstruction
作成するXmlProcessingInstructionノード
1
2XmlProcessingInstruction XmlDocument.createProcessingInstruction(String target,
String data);
呼び出しパラメータ:
- target: 文字列、処理命令のターゲットを指定します。
- data: 文字列、処理命令の内容テキストを指定します。
返される結果:
- XmlProcessingInstruction、新しく作成された Processingstruction ノード
hasChildNodes
子ノードがあるかどうかを問い合わせる
1Boolean XmlDocument.hasChildNodes();
返される結果:
- Boolean、子ノードがある場合は true を返し、それ以外の場合は false を返します。
normalize
隣接するテキスト ノードをマージし、空のテキスト ノードを削除します
1XmlDocument.normalize();
このメソッドは、現在のノードのすべての子孫ノードを走査し、空の Text ノードを削除し、隣接するすべての Text ノードをマージすることでドキュメントを正規化します。この方法は、ノードの挿入または削除後にドキュメント ツリーの構造を簡素化するのに役立ちます。
cloneNode
指定されたノードの正確なコピーを作成します
1XmlNode XmlDocument.cloneNode(Boolean deep = true);
呼び出しパラメータ:
- deep: ブール値、ディープ コピーするかどうか。true の場合、複製されたノードは元のノードのすべての子ノードを複製します。
返される結果:
- XmlNode、コピーされたノードを返します
このメソッドは、呼び出されたノードのコピーをコピーして返します。渡された引数が true の場合、現在のノードのすべての子孫ノードも再帰的にコピーされます。それ以外の場合は、現在のノードをコピーするだけです。返されたノードはドキュメント ツリーに属しておらず、そのparentNode プロパティは null です。要素ノードがコピーされると、そのすべてのプロパティがコピーされます。
lookupPrefix
現在のノード上の指定された名前空間 URI に一致するプレフィックスを返します。
1String XmlDocument.lookupPrefix(String namespaceURI);
呼び出しパラメータ:
- namespaceURI: 文字列。一致する名前空間 URI を指定します。
返される結果:
- String、一致するプレフィックスを返し、一致しない場合は null を返します。
lookupNamespaceURI
現在のノード上の指定されたプレフィックスに一致する名前空間 URI を返します。
1String XmlDocument.lookupNamespaceURI(String prefix);
呼び出しパラメータ:
- prefix: 文字列、一致するプレフィックスを指定します
返される結果:
- String、一致する名前空間 URI を返し、一致しない場合は null を返します。
insertBefore
既存の子ノードの前に新しい子ノードを挿入します
1
2XmlNode XmlDocument.insertBefore(XmlNode newChild,
XmlNode refChild);
呼び出しパラメータ:
返される結果:
- XmlNode、新しい子ノードを返します
newChild がドキュメント ツリーに既に存在する場合は、ドキュメント ツリーから削除され、新しい位置に再挿入されます。1 つのドキュメントのノード (または 1 つのドキュメントによって作成されたノード) を別のドキュメントに挿入することはできません。つまり、newChild の ownerDocument 属性は、現在のノードの ownerDocument 属性と同じである必要があります。
insertAfter
既存の子ノードの後に新しい子ノードを挿入します
1
2XmlNode XmlDocument.insertAfter(XmlNode newChild,
XmlNode refChild);
呼び出しパラメータ:
返される結果:
- XmlNode、新しい子ノードを返します
newChild がドキュメント ツリーに既に存在する場合は、ドキュメント ツリーから削除され、新しい位置に再挿入されます。1 つのドキュメントのノード (または 1 つのドキュメントによって作成されたノード) を別のドキュメントに挿入することはできません。つまり、newChild の ownerDocument 属性は、現在のノードの ownerDocument 属性と同じである必要があります。
appendChild
新しい子ノードをノードの子ノード リストの末尾に追加します
1XmlNode XmlDocument.appendChild(XmlNode newChild);
呼び出しパラメータ:
- newChild:XmlNode、追加したノードを指定します
返される結果:
- XmlNode、この新しい子ノードを返します
newChild がドキュメント ツリーに既に存在する場合は、ドキュメント ツリーから削除され、新しい位置に再挿入されます。1 つのドキュメントのノード (または 1 つのドキュメントによって作成されたノード) を別のドキュメントに挿入することはできません。つまり、newChild の ownerDocument 属性は、現在のノードの ownerDocument 属性と同じである必要があります。
replaceChild
子ノードを別のノードに置き換える
1
2XmlNode XmlDocument.replaceChild(XmlNode newChild,
XmlNode oldChild);
呼び出しパラメータ:
返される結果:
- XmlNode, 置換が成功した場合、このメソッドは置換されたノードを返しますが、置換が失敗した場合は null を返します。
newChild がドキュメント ツリーに既に存在する場合は、ドキュメント ツリーから削除され、新しい位置に再挿入されます。1 つのドキュメントのノード (または 1 つのドキュメントによって作成されたノード) を別のドキュメントに挿入することはできません。つまり、newChild の ownerDocument 属性は、現在のノードの ownerDocument 属性と同じである必要があります。
removeChild
子ノードのリストからノードを削除します。
1XmlNode XmlDocument.removeChild(XmlNode oldChild);
呼び出しパラメータ:
- oldChild:XmlNode、削除するノードを指定します
返される結果:
- XmlNode, 削除が成功した場合、このメソッドは削除されたノードを返すことができますが、失敗した場合は null を返します。
toString
オブジェクトの文字列表現を返します。通常、「[Native Object]」が返されます。オブジェクトは、独自の特性に従って再実装できます。
1String XmlDocument.toString();
返される結果:
- String、オブジェクトの文字列表現を返します。
toJSON
オブジェクトの JSON 形式表現を返します。通常は、オブジェクトによって定義された読み取り可能なプロパティのコレクションを返します。
1Value XmlDocument.toJSON(String key = "");
呼び出しパラメータ:
- key: 文字列、使用されません
返される結果:
- Value、シリアル化可能な JSON を含む値を返します