Main Content

evaluate

类: matlab.io.xml.xpath.Evaluator
命名空间: matlab.io.xml.xpath

计算 XPath 表达式

自 R2021a 起

语法

result = evaluate(evaluatorObj,xpExpr,xmlFilePath)
result = evaluate(evaluatorObj,xpExpr,xmlFilePath,resType)
result = evaluate(evaluatorObj,xpExpr,xmlFilePath,allowDoctype)
result = evaluate(evaluatorObj,xpExpr,xmlFilePath,resType,allowDoctype)
result = evaluate(evaluatorObj,xpExpr,ctxNode)
result = evaluate(evaluatorObj,xpExpr,ctxNode,resType)

说明

result = evaluate(evaluatorObj,xpExpr,xmlFilePath) 在指定的 XML 文件的上下文中计算指定的 XPath 表达式,并返回其类型由 XPath 表达式确定的对象。

result = evaluate(evaluatorObj,xpExpr,xmlFilePath,resType) 返回指定的结果类型。

result = evaluate(evaluatorObj,xpExpr,xmlFilePath,allowDoctype) 指定是否解析包含文档类型定义 (DTD) 的 XML 文件。

result = evaluate(evaluatorObj,xpExpr,xmlFilePath,resType,allowDoctype) 返回指定的结果类型,并指定是否解析包含文档类型定义 (DTD) 的 XML 文件。

result = evaluate(evaluatorObj,xpExpr,ctxNode) 在由 ctxNode 指定的解析文档节点的上下文中计算指定的 XPath 表达式,并返回其类型由 XPath 表达式确定的对象。

result = evaluate(evaluatorObj,xpExpr,ctxNode,resType) 在由 ctxNode 指定的解析文档节点的上下文中计算指定的 XPath 表达式,并返回指定的结果类型。

输入参数

全部展开

XPath 表达式计算器,指定为 matlab.io.xml.xpath.Evaluator 对象。

XPath 1.0 表达式,指定为字符向量、字符串标量或 matlab.io.xml.xpath.CompiledExpression 对象。

XML 文件的路径,指定为字符向量或字符串标量。

计算上下文节点,指定为节点对象,如 matlab.io.xml.dom.Element 对象。如果 ctxNode 是先前表达式计算的修改结果,则 evaluate 会抛出错误。

计算结果类型,指定为 matlab.io.xml.xpath.EvalResultType 对象。

文档类型定义 (DTD)(指定为 truefalse)确定 XML 文件是否可以包含 DTD。如果指定的文件包含 DTD,则值 false 将导致错误。只能对可信源启用此选项。

输出参数

全部展开

计算结果,以字符串标量或指定的结果类型形式返回。如果未提供 resType 参数,将以字符串标量形式返回结果。如果提供了 resType,将根据下表返回结果。

结果类型输出类型

EvalResultType.Boolean

逻辑值
EvalResultType.Number双精度值
EvalResultType.Node节点对象,如 matlab.io.xml.xpath.Element 对象
EvalResultType.NodeSet节点对象的向量

EvalResultType.String

字符串标量

示例

全部展开

此示例计算一个 XPath 表达式,该表达式在文件 music.xml 中查找名为 Instrument 的节点。

文件 music.xml 包含以下 XML 标记:

<MusicalEnsemble>
	<Ensemble>
		<Music>Jazz</Music>
            <BandName>Kool Katz</BandName>
		<Instrumentation>
			<Instrument type="wind">Trumpet
            </Instrument>
			<Instrument type="percussion">Piano
                <pianotype>concert grand</pianotype>
            </Instrument>
			<Instrument type="percussion">Drums
                <drumkit>Bass drum</drumkit>
                <drumkit>Floor tom</drumkit>
                <drumkit>Snare drum</drumkit>
                <drumkit>Hi-hat</drumkit>
                <drumkit>Ride cymbal</drumkit>
            </Instrument>
			<Instrument type="string">Bass
                <basstype>upright</basstype>
            </Instrument>
		</Instrumentation>
	</Ensemble>
    <Musicians>
        <Name role="trumpeter">Miles</Name>
        <Name role="vocalist">Roger</Name>
        <Name role="pianist">Diana</Name>
        <Name role="drummer">George</Name>
        <Name role="bassist">John</Name>
    </Musicians>
</MusicalEnsemble>

定义 XPath 表达式并指定 XML 文件。

import matlab.io.xml.xpath.*

xpExpr = "//Instrument";
xmlFilePath = "music.xml";

计算 XPath 表达式,并以节点对象向量形式返回节点。

data = evaluate(Evaluator,xpExpr,xmlFilePath,EvalResultType.NodeSet)
data=1×4 object
  1x4 Element array with properties:

    TagName
    HasAttributes
    TextContent
    Children

此示例解析一个 XML 文件,然后使用解析的文档节点计算 XPath 表达式

music.xml 文件解析为文档节点。

import matlab.io.xml.dom.*

doc = parseFile(Parser,"music.xml");

计算一个 XPath 表达式,该表达式返回类型属性为 percussioninstrument 元素。指定结果类型是节点对象向量。

import matlab.io.xml.xpath.*

xpExpr = "//Instrument[@type='percussion']";
xmlFilePath = "music.xml";
data = evaluate(Evaluator,xpExpr,doc,EvalResultType.NodeSet)
data=1×2 object
  1x2 Element array with properties:

    TagName
    HasAttributes
    TextContent
    Children

版本历史记录

在 R2021a 中推出

全部展开