Main Content

matlab.io.xml.transform.Transformer 类

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

XML 文档转换器

自 R2021a 起

描述

使用 matlab.io.xml.transform.Transformer 类的对象来定义将 XML 文档转换为另一种类型的文档的 XML 文档转换器。例如,使用转换器将 XML 文档转换为 HTML 文档。

matlab.io.xml.transform.Transformer 类是一个 handle 类。

类属性

ConstructOnLoad
true
HandleCompatible
true

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

创建对象

描述

示例

transformer = Transformer() 创建一个 XML 文档转换器。

属性

全部展开

指定用于美化打印转换器生成的 XML 输出的空格数。术语“美化打印”指在转换后的输出中使用新行和空白字符来表示 XML 文档层次结构。例如,以下输出说明如何使用美化打印来表示由包含文本元素的 para 元素组成的文档层次结构:

<para>
    <text>Hello World</text>
</para>

注意

仅当样式表输出元素 (xsl:output) 指定输出应为缩进 XML 时,转换器才会美化打印输出。

用于验证要转换的文档的外部架构的路径,指定为字符向量或字符串标量。此属性仅适用于使用命名空间来命名元素和属性的源文档。

属性:

GetAccess
public
SetAccess
public
NonCopyable
true

用于验证要转换的文档的外部架构的路径,指定为字符向量或字符串标量。此属性仅适用于不使用命名空间来命名元素和属性的源文档。

属性:

GetAccess
public
SetAccess
public
NonCopyable
true

是否验证输入文档和样式表,指定为 truefalse。如果值为 true,则此转换器的 transform 方法会验证输入文档和样式表。

属性:

GetAccess
public
SetAccess
public
NonCopyable
true

输出文档的字符编码,指定为 "UTF-8""UTF-16"

属性:

GetAccess
public
SetAccess
public
NonCopyable
true

用于解析样式表实体引用的对象,指定为 matlab.io.xml.dom.EntityResolver 类的子类对象。

属性:

GetAccess
public
SetAccess
public
NonCopyable
true

样式表执行跟踪器,指定为 matlab.io.xml.transform.Tracer 对象。使用此属性指定用于跟踪样式表的执行的选项。

属性:

GetAccess
public
SetAccess
public
NonCopyable
true
Transient
true

方法

全部展开

示例

全部折叠

此示例将包含国家/地区及其首都信息的 XML 标记转换为 XML 表。

该示例使用下列文件:

  • capitals.xml

<Countries>
    <Country><Name>Canada</Name><Capital>Ottawa</Capital></Country>
    <Country><Name>France</Name><Capital>Paris</Capital></Country>
    <Country><Name>Peru</Name><Capital>Lima</Capital></Country>
</Countries>
  • capitals.xsl

<?xml version="1.0"?>

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/">
  <html>
  <body>
      <table>
      <tr>
        <th>Country</th>
        <th>Capital</th>
      </tr>
      <xsl:for-each select="Countries/Country">
        <tr>
          <td><xsl:value-of select="Name"/></td>
          <td><xsl:value-of select="Capital"/></td>
        </tr>
      </xsl:for-each>
    </table>
  </body>
  </html>
</xsl:template>

</xsl:stylesheet>

调用 transform 方法以使用 capitals.xsl 文件中的样式表转换 capitals.xml 中的 XML 标记,并将结果存储在 capitals.html 文件中。

import matlab.io.xml.transform.*
transform(Transformer,"capitals.xml","capitals.xsl","capitals.html");

在浏览器中打开 capitals.html

web("capitals.html")

下面是 HTML 表:

算法

MATLAB® Transformer 对象支持使用样式表中的许多(但非全部)标准 XPath 函数。有关支持的 XPath 函数的列表,请参阅 matlab.io.xml.xpath.Evaluator

Transformer 对象还支持样式表中的以下标准 xslt 函数和 xslt 扩展 (EXSLT) 函数类别:

样式表中的 xslt 函数EXSLT 函数
  • current

  • document

  • element-available

  • format-number

  • function-available

  • generate-id

  • key

  • system-property

  • unparsed-entity-uri

有关样式表中函数的定义和用法的详细信息,请参阅万维网联盟网站上的 XSL Transformations (XSLT)

常用:

  • exsl:nodeset

  • exsl:object-type

  • exsl:document

数学:

  • math:abs

  • math:acos

  • math:asin

  • math:atan

  • math:atan2

  • math:constant

  • math:cos

  • math:exp

  • math:highest

  • math:log

  • math:lowest

  • math:max

  • math:min

  • math:power

  • math:random

  • math:sin

  • math:sqrt

  • math:tan

设置:

  • set:difference

  • set:distinct

  • set:has-same-node

  • set:intersection

  • set:leading

  • set:trailing

字符串:

  • str:align

  • str:concat

  • str:decode-uri

  • str:encode-uri

  • str:padding

动态:

  • dyn:evaluate

日期时间:

  • date:date-time

版本历史记录

在 R2021a 中推出

全部展开