模块  java.xml
软件包  org.w3c.dom

Interface Text

  • All Superinterfaces:
    CharacterDataNode
    All Known Subinterfaces:
    CDATASection

    public interface Text
    extends CharacterData
    Text接口继承自CharacterData并表示ElementAttr的文本内容(在XML中称为character data )。 如果元素内容中没有标记,则文本包含在实现Text接口的单个对象中,该接口是元素的唯一子元素。 如果有标记,则将其解析为信息项(元素,注释等)和Text节点, Text节点构成元素的子元素列表。

    当文档首次通过DOM提供时,每个文本块只有一个Text节点。 用户可以创建表示给定元素内容的相邻Text节点,而不需要任何插入标记,但应该知道无法用XML或HTML表示这些节点之间的分隔,因此它们(通常)不会在DOM编辑会话。 Node.normalize()方法将任何此类相邻的Text对象合并为每个文本块的单个节点。

    没有对Text节点的内容进行词法检查,并且根据其在文档中的位置,在使用字符引用进行序列化期间必须转义某些字符; 例如字符“<&”如果文本内容是元素或属性的一部分,则字符序列“]]>”当元素的一部分,引号字符“或撇号字符时属性的一部分。

    另见Document Object Model (DOM) Level 3 Core Specification

    • 方法详细信息

      • splitText

        Text splitText​(int offset)
                throws DOMException
        将此节点分解为指定的offset处的两个节点,将两个节点保留在树中作为兄弟节点。 拆分后,此节点将包含直到offset点的所有内容。 将返回相同类型的新节点,其中包含offset点及其后的所有内容。 如果原始节点具有父节点,则插入新节点作为原始节点的下一个兄弟节点。 offset等于此节点的长度时,新节点没有数据。
        参数
        offset - 从 0开始分割的16位单位偏移量。
        结果
        新节点,与此节点的类型相同。
        异常
        DOMException - INDEX_SIZE_ERR:如果指定的偏移量为负或大于data的16位单元数,则data
        NO_MODIFICATION_ALLOWED_ERR:如果此节点是只读的,则引发此异常。
      • isElementContentWhitespace

        boolean isElementContentWhitespace()
        返回此文本节点是否包含element content whitespace ,通常被称为“可忽略的空格”。 确定文本节点在加载文档期间包含元素内容中的空格,或者在使用Document.normalizeDocument()时进行Document.normalizeDocument()
        从以下版本开始:
        1.5,DOM Level 3
      • getWholeText

        String getWholeText()
        返回Text节点逻辑上相邻的文本节点到此节点的所有文本,按文档顺序连接。
        例如,在下面的例子中wholeText的上Text包含“栏中的”返回“barfoo”,而在节点Text包含节点“foo”的则返回“barfoo”。
          +-----+
                             | <p> |
                             +-----+
                               /\
                              /  \
                       /-----\    +-------+
                       | bar |    | &ent; |
                       \-----/    +-------+
                                      |
                                      |
                                   /-----\
                                   | foo |
                                   \-----/ 
        图:barTextNode.wholeText值为“barfoo”
        从以下版本开始:
        1.5,DOM Level 3
      • replaceWholeText

        Text replaceWholeText​(String content)
                       throws DOMException
        用指定的文本替换当前节点的文本和所有逻辑上相邻的文本节点。 删除所有逻辑上相邻的文本节点,包括当前节点,除非它是替换文本的接收者。

        此方法返回接收替换文本的节点。 返回的节点是:

        • null ,当替换文本为空字符串时;
        • 当前节点,除非当前节点是只读的;
        • 新的Text相同类型的节点( TextCDATASection )作为当前节点插入替换位置。

        例如,在上面的示例中,在Text节点上调用replaceWholeText ,其中包含“bar”并在参数中包含“yo”,结果如下:

          +-----+
                             | <p> |
                             +-----+
                                |
                                |
                             /-----\
                             | yo  |
                             \-----/ 
        图:barTextNode.replaceWholeText(“yo”)用“yo”修改barTextNode的文本内容

        如果要删除的节点是EntityReference只读后代,则必须删除EntityReference而不是只读节点。 如果任何EntityReference要去除具有不后代EntityReferenceText ,或CDATASection节点,所述replaceWholeText方法必须在执行该文件的任何修改,养之前失败DOMException与代码NO_MODIFICATION_ALLOWED_ERR

        例如,在下面的示例中,在包含“bar”的Text节点上调用replaceWholeText失败,因为EntityReference节点“ent”包含无法删除的Element节点。

        参数
        content - 替换 Text节点的内容。
        结果
        使用指定内容创建的 Text节点。
        异常
        DOMException - NO_MODIFICATION_ALLOWED_ERR:如果要替换的 Text节点之一是只读的,则引发此异常。
        从以下版本开始:
        1.5,DOM Level 3