Module  java.xml
软件包  org.w3c.dom

Interface Text

  • All Superinterfaces:
    CharacterDataNode
    All Known Subinterfaces:
    CDATASectionText


    public interface Text
    extends CharacterData
    Text接口继承自CharacterData ,代表ElementAttr的文本内容(名称为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 3级
      • getWholeText

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

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

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

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

        例如,在上面的例子中调用replaceWholeText的上Text包含在以下参数结果“栏中的”与“球”节点:

          +-----+
                             | <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节点中的一个被显示为唯一,则 Text
        从以下版本开始:
        1.5,DOM 3级