【问题标题】:How to add definiton for xsi namespace with saxon .NET api如何使用 saxon .NET api 为 xsi 命名空间添加定义
【发布时间】:2014-09-09 05:46:13
【问题描述】:

我正在尝试将 xsi 命名空间的定义添加到 saxon .NET api 中。

我已经用过这个了——但这无济于事:

Processor xmlProcessor = new Processor();
SchemaManager manager1 = xmlProcessor.SchemaManager;
SchemaValidator validator = manager1.NewSchemaValidator();

DocumentBuilder builder = xmlProcessor.NewDocumentBuilder();
XdmNode xdmNode = builder.Build(xmlDocument);
validator.SetSource(xdmNode);
XPathCompiler compiler = xmlProcessor.NewXPathCompiler();

我需要这个来像这样解析 xpath:

substring-before(substring-after(//IzdaniRacunEnostavni/@xsi:noNamespaceSchemaLocation,'http://www.gzs.si/e-poslovanje/sheme/'))

如果家庭版不支持此功能,是否有完全支持 xpath 2.0 的免费外部库?

【问题讨论】:

    标签: c# xml saxon xpath-2.0


    【解决方案1】:

    我找到了解决问题的方法:

    你必须使用 compiler.DeclareNamespace 方法。

        Processor xmlProcessor = new Processor();
        DocumentBuilder builder = xmlProcessor.NewDocumentBuilder();
        XdmNode xdmNode = builder.Build(xmlDocument);
        XPathCompiler compiler = xmlProcessor.NewXPathCompiler();
        compiler.DeclareNamespace("xsi", "http://www.w3.org/2001/XMLSchema-instance");
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-10-04
      • 1970-01-01
      • 1970-01-01
      • 2023-03-13
      • 2015-03-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多