Main Content

matlab.io.xml.xpath.PrefixResolver 类

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

用于命名空间前缀解析器的抽象基类

自 R2021a 起

描述

matlab.io.xml.xpath.PrefixResolver 类是一个抽象基类,用于派生解析器,该解析器可解析 XPath 表达式中出现的命名空间前缀。要将 matlab.io.xml.xpath.Evaluator 对象配置为使用前缀解析器,请将 Evaluator 对象的 PrefixResolver 属性设置为派生类的对象,并将 ResolvePrefixes 属性设置为 true

matlab.io.xml.xpath.PrefixResolver 类是一个 handle 类。

类属性

Abstract
true
HandleCompatible
true
ConstructOnLoad
true

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

方法

全部展开

示例

全部折叠

实现命名空间前缀解析器,并使用它来解析由 matlab.io.xml.xpath.Evaluator 对象计算的 XPath 表达式中的前缀。

matlab.io.xml.xpath.PrefixResolver 类派生 myPrefixResolver 类。定义 getNamespaceForPrefixgetURL 方法。

classdef myPrefixResolver < matlab.io.xml.xpath.PrefixResolver
    
    methods
        function url = getNamespaceForPrefix(resolver,prefix)
            if prefix == "a"
                url = "https://mycompany.com/ns/namespacea";
                            else
                url = "https://mycompany.com/ns/namespaceb";
                            end
        end
        function url = getURL(resolver)
            url = "https://mycompany.com";
        end
    end

end

定义一个 XPath 表达式计算器,并将 PrefixResolver 属性设置为 myPrefixResolver 对象。

import matlab.io.xml.xpath.*
evalObj = Evaluator();
evalObj.PrefixResolver = myPrefixResolver;

假设 myXML.xml 包含要搜索的 XML。以下代码计算使用 myPrefixResolver 对象方法所指定的命名空间中的前缀的表达式。

data = evaluate(evalObj,"//a:Instrument","myXML.xml",EvalResultType.NodeSet);

版本历史记录

在 R2021a 中推出