Main Content

matlab.io.xml.dom.DocumentType 类

命名空间: matlab.io.xml.dom

文档类型

自 R2021a 起

描述

matlab.io.xml.dom.DocuementType 类的一个对象,表示一种文档类型。

如果 Document 对象是由解析器从包含文档类型定义 (DTD) 的 XML 标记创建的,则 matlab.io.xml.dom.Document 对象的 getDoctype 方法返回 matlab.io.xml.dom.DocumentType 对象。

注意

DocumentType 对象会从 matlab.io.xml.dom.Node 类继承方法和属性,但某些方法和属性在与 DocumentType 对象结合使用时无效或者会导致错误。请仅使用本页公开的方法和属性。

matlab.io.xml.dom.DocumentType 类是一个 handle 类。

类属性

ConstructOnLoad
true
HandleCompatible
true

有关类属性的信息,请参阅类属性

属性

全部展开

文档类型的名称,指定为字符向量。

属性:

GetAccess
public
SetAccess
immutable
Transient
true
NonCopyable
true

文档类型的公共 ID,指定为字符向量。

属性:

GetAccess
public
SetAccess
immutable
Transient
true
NonCopyable
true

文档类型的系统 ID,指定为字符向量。

属性:

GetAccess
public
SetAccess
immutable
Transient
true
NonCopyable
true

本地定义的实体和表示法,指定为字符向量。本地定义的实体和表示法在解析文档类型的标记中定义。

属性:

GetAccess
public
SetAccess
immutable
Transient
true
NonCopyable
true

方法

全部展开

示例

全部折叠

此示例说明如何访问从包含文档类型定义 (DTD) 的 XML 标记解析的 DOM 文档中的文档类型和实体信息。

该示例使用下列文件,它们都必须在同一个文件夹中:

  • book.xml 包含文档类型定义,该定义将 chapter 实体的资源声明为 chapter.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE book [
<!ENTITY chapter SYSTEM "chapter.xml">
]>
<book>
    &chapter;
</book>
  • chapter.xml 包含章节的标记。

<?xml version="1.0" encoding="UTF-8"?>
<chapter><title color="red">Introduction</title></chapter>

将 XML 解析为 matlab.io.xml.dom.Document 对象。

import matlab.io.xml.dom.*

myParser = Parser;
myParser.Configuration.AllowDoctype = true;
doc = parseFile(myParser,'book.xml');

要获取有关文档类型的信息,请使用 Document 对象的 getDoctype 方法。

docTypeObj = getDoctype(doc)
docTypeObj = 
  DocumentType with properties:

              Name: 'book'
          PublicID: ''
          SystemID: ''
    InternalSubset: '↵<!ENTITY chapter SYSTEM "chapter.xml">↵'
       TextContent: ''
          Children: [1×0 matlab.io.xml.dom.Node]

要获取由文档类型定义的实体的信息,请使用 DocumentType 对象的 getEntities 方法。该方法以 NamedNodeMap 对象形式返回实体列表。

namedNodeMapObj = getEntities(docTypeObj);

要返回表示实体的 matlab.io.xm.dom.Entity 对象,请使用 NamedNodeMap 对象的 item 方法。将第一个索引指定为 0。

n = getLength(namedNodeMapObj)-1;
for i=0:n
    item(namedNodeMapObj,i)
end
ans = 
  Entity with properties:

    InputEncoding: 'UTF-8'
         PublicID: ''
         SystemID: 'chapter.xml'
      XMLEncoding: 'UTF-8'
       XMLVersion: '1.0'
      TextContent: '↵Introduction'
         Children: [1×2 matlab.io.xml.dom.Node]

版本历史记录

在 R2021a 中推出