evaluate

Класс: matlab.io.xml.xpath.Evaluator
Пакет: matlab.io.xml.xpath

Оцените выражение XPath

Синтаксис

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

Описание

result = evaluate(evaluatorObj,xpExpr,xmlFilePath) оценивает заданное выражение XPath в контексте заданного XML-файла и возвращает объект, тип которого определяется выражением XPath.

result = evaluate(evaluatorObj,xpExpr,xmlFilePath, resType) оценивает заданное выражение XPath в контексте заданного XML-файла и возвращает заданный тип результата.

result = evaluate(evaluatorObj,xpExpr,ctxNode) оценивает заданное выражение XPath в контексте проанализированного узла документа, заданного ctxNode и возвращает объект, тип которого определяется выражением XPath.

result = evaluate(evaluatorObj,xpExpr,ctxNode,resType) оценивает заданное выражение XPath в контексте проанализированного узла документа, заданного ctxNode и возвращает заданный тип результата.

Входные параметры

развернуть все

Средство анализа выражения 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 объект.

Выходные аргументы

развернуть все

Результат оценки, возвращенный как строковый скаляр или как заданный тип результата. Если resType аргумент не обеспечивается, результат возвращен как строковый скаляр. Если resType обеспечивается, результат возвращен согласно таблице.

Тип результата'OutputType'

EvalResultType.Boolean

логический
EvalResultType.Number'double'
EvalResultType.NodeОбъект узла, такой как matlab.io.xml.xpath.Element объект
EvalResultType.NodeSetВектор из объектов узла

EvalResultType.String

скаляр строки

Примеры

развернуть все

Этот пример оценивает выражение XPath, которое находит узлы с именем Instrument в файле music.xml.

Файл 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, которое возвращает instrument элементы, которые имеют атрибут type percussion. Укажите, что тип результата является вектором из объектов узла.

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