Main Content

matlab.io.xml.dom.Entity 类

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

由文档类型定义的实体

自 R2021a 起

描述

matlab.io.xml.dom.Entity 类的对象,表示 XML 实体。XML 实体是具有名称的文档内容,由与文档相关联的文档类型定义来定义。matlab.io.xml.dom.DocumentType 对象的 getEntities 方法以 matlab.io.xml.dom.NamedNodeMap 对象形式返回由文档类型定义的实体列表。使用 NamedNodeMap 对象的 item 方法返回列表中的 Entity 对象。

注意

Entity 对象会从 matlab.io.xml.dom.Node 类继承一些用于 Entity 对象时无效或导致错误的方法和属性。请仅使用本页公开的方法和属性。

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

类属性

ConstructOnLoad
true
HandleCompatible
true

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

属性

全部展开

实体源文档的编码,指定为字符向量。

属性:

GetAccess
public
SetAccess
immutable
Transient
true
NonCopyable
true

实体源文档的公共 ID,指定为字符向量。属性值设置为由解析此实体的文档类型声明指定的公共 ID。

属性:

GetAccess
public
SetAccess
immutable
Transient
true
NonCopyable
true

实体源文档的系统 ID,指定为字符向量。属性值设置为由解析此实体的文档类型声明指定的位置。

属性:

GetAccess
public
SetAccess
immutable
Transient
true
NonCopyable
true

由解析此实体的源文件中的 XML 声明指定的编码,指定为字符向量。

属性:

GetAccess
public
SetAccess
immutable
Transient
true
NonCopyable
true

由解析此实体的源文件中的 XML 声明指定的 XML 版本,指定为字符向量。

属性:

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 中推出