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 объект.

Тип результата оценки, заданный как matlab.io.xml.xpath.EvalResultType объект.

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

расширить все

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

Тип результатаВыход

EvalResultType.Boolean

логичный
EvalResultType.Numberдважды
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