public interface Text extends CharacterData
Text
インタフェースはCharacterData
を継承し、Element
またはAttr
のテキスト形式の内容(XMLでは文字データという)を表します。要素のコンテンツ内にマークアップが存在しない場合、テキストはText
インタフェースを実装する単一のオブジェクト(要素の唯一の子オブジェクト)に格納されます。マークアップが存在する場合、テキストは情報項目(要素、コメントなど)や、その要素の子要素のリストを形成するText
ノードに解析されます。
DOMによって文書がはじめて利用可能な状態になった時点では、Text
ノードはテキスト・ブロックごとに1個ずつしか存在しません。ユーザーはマークアップを一切使用しないで所定の要素のコンテンツを表す隣接Text
ノードを作成できますが、XMLやHTMLではこれらのノードの区切りを表現できないということ、つまり、通常、作成したノードはDOM編集セッションの終了とともに失われるということを認識しておく必要があります。Node.normalize()
メソッドは、こうした隣接Text
オブジェクトを各テキスト・ブロック内の単一のノードにマージします。
Text
ノードの内容に対する字句のチェックは実行されないため、一部の文字は、文書内の位置に応じて、直列化中に文字参照を使用してエスケープする必要があります。たとえば、テキスト・コンテンツが要素または属性の一部である場合の文字「<&」、要素の一部である場合の文字シーケンス「]]>」、属性の一部である場合の引用符文字「"」またはアポストロフィ文字「'」などがあります。
「Document Object Model (DOM) Level 3 Core Specification」も参照してください。
ATTRIBUTE_NODE, CDATA_SECTION_NODE, COMMENT_NODE, DOCUMENT_FRAGMENT_NODE, DOCUMENT_NODE, DOCUMENT_POSITION_CONTAINED_BY, DOCUMENT_POSITION_CONTAINS, DOCUMENT_POSITION_DISCONNECTED, DOCUMENT_POSITION_FOLLOWING, DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC, DOCUMENT_POSITION_PRECEDING, DOCUMENT_TYPE_NODE, ELEMENT_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, NOTATION_NODE, PROCESSING_INSTRUCTION_NODE, TEXT_NODE
修飾子と型 | メソッドと説明 |
---|---|
String |
getWholeText()
このノードに論理的に隣接するテキスト・ノードである
Text ノードのすべてのテキストを文書の順に連結して返します。 |
boolean |
isElementContentWhitespace()
このテキスト・ノードが要素コンテンツ空白文字 (多くの場合、「無視できる空白文字」と呼ばれる)を含むかどうかを返します。
|
Text |
replaceWholeText(String content)
現在のノードと論理的に隣接するすべてのテキスト・ノードのテキストを、指定されたテキストに置き換えます。
|
Text |
splitText(int offset)
このノードを、指定された
offset 位置で2つのノードに分割し、それらを兄弟ノードとしてツリー内に保存します。 |
appendData, deleteData, getData, getLength, insertData, replaceData, setData, substringData
appendChild, cloneNode, compareDocumentPosition, getAttributes, getBaseURI, getChildNodes, getFeature, getFirstChild, getLastChild, getLocalName, getNamespaceURI, getNextSibling, getNodeName, getNodeType, getNodeValue, getOwnerDocument, getParentNode, getPrefix, getPreviousSibling, getTextContent, getUserData, hasAttributes, hasChildNodes, insertBefore, isDefaultNamespace, isEqualNode, isSameNode, isSupported, lookupNamespaceURI, lookupPrefix, normalize, removeChild, replaceChild, setNodeValue, setPrefix, setTextContent, setUserData
Text splitText(int offset) throws DOMException
offset
位置で2つのノードに分割し、それらを兄弟ノードとしてツリー内に保存します。分割されたあと、このノードにはoffset
位置までのすべてのコンテンツが含まれます。offset
位置とそれよりあとにあるすべてのコンテンツを含む、同じ型の新しいノードが返されます。元のノードが親ノードを持っていた場合、元のノードの隣に兄弟ノードとして新しいノードが挿入されます。offset
がこのノードの長さに等しい場合、新しいノードはデータを持ちません。offset
- 分割する位置を示す(0
から始まる) 16ビット単位のオフセット。DOMException
- INDEX_SIZE_ERR: 指定されたoffsetが負であるか、またはdata
内の16ビット単位の数より大きい場合に発生します。boolean isElementContentWhitespace()
Document.normalizeDocument()
を使用中に検証が行われた場合に、テキスト・ノードは要素コンテンツに空白文字を含むかどうかを判定されます。String getWholeText()
Text
ノードのすべてのテキストを文書の順に連結して返します。wholeText
は「bar」を含むText
ノード上で「barfoo」を返すのに対して、「foo」を含むText
ノード上では「barfoo」を返します。
+-----+ | <p> | +-----+ /\ / \ /-----\ +-------+ | bar | | &ent; | \-----/ +-------+ | | /-----\ | foo | \-----/図: barTextNode.wholeText値が「barfoo」
Text replaceWholeText(String content) throws DOMException
このメソッドは、置換テキストを受け取ったノードを返します。返されるノードは次のとおりです。
null
。
Text
またはCDATASection
)の新しいText
ノード。
たとえば、上の例で、「bar」を含むText
ノード上で引数に「yo」を指定してreplaceWholeText
を呼び出すと、次のようになります。
+-----+ | <p> | +-----+ | | /-----\ | yo | \-----/図: barTextNode.replaceWholeText("yo")がbarTextNodeのテキスト・コンテンツを「yo」で変更
削除されるノードがEntityReference
の読取り専用の子孫である場合は、読取り専用ノードの代わりにEntityReference
が削除されます。削除されるいずれかのEntityReference
がEntityReference
、Text
、またはCDATASection
ノードではない子孫を持つ場合、replaceWholeText
メソッドは文書の何らかの変更を実行する前に失敗し、コードNO_MODIFICATION_ALLOWED_ERR
のDOMException
を発生させます。
たとえば、次の例では、「bar」を含むText
ノード上でreplaceWholeText
を呼び出すと、EntityReference
ノード「ent」に削除できないElement
ノードが含まれているために失敗します。
content
- 置き換えているText
ノードのコンテンツ。Text
ノード。DOMException
- NO_MODIFICATION_ALLOWED_ERR: 置換しているText
ノードの中の1つが読取り専用の場合に発生します。 バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.