exponenta event banner

оценить

Класс: 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 элементы, имеющие атрибут типа 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