gpt4 book ai didi

c# - C# 和 .NET 中是否存在 Java URIResolver 概念?

转载 作者:行者123 更新时间:2023-11-30 16:36:22 26 4
gpt4 key购买 nike

在Java XML 转换包中,有一个称为URIResolver 的概念。 ,它是“实现此接口(interface)的对象,处理器可以调用该接口(interface)将 document()、xsl:import 或 xsl:include 中使用的 URI 转换为 Source 对象。”

因此,如果您的 XSL 具有这样的导入

<xsl:import href="URI"/> 

这允许您获取 URI 并将其映射到 Source您的选择 - 也许它来自数据库,或者您可能想将 URI 映射到另一个 URI。这可能很有用,因为您不能在 xsl:import href 中使用 xsl:variable

下面是一些示例 Java 代码,用于创建转换器并进行转换。

URIResolver uriResolver = new MyURIResolver();  // sample
TransformerFactory transformerFactory = TransformerFactory.newInstance();
transformerFactory.setURIResolver(uriResolver);
Transformer transformer = transformerFactory.newTransformer();
transformer.setURIResolver(uriResolver);
transformer.transform(xml, result);

请注意,代码中有两个地方使用了 URIResolver:

  • 变形金刚工厂 setURIResolver - "设置一个对象这是在默认情况下使用解析使用的 URI 的转换在 document()、xsl:import 或xsl: 包含。”
  • 变形金刚 setURIResolver - “放将用于的对象解析 document() 中使用的 URI。”

问题:在C#和.NET中是否有类似Java URIResolver的概念?

最佳答案

是的,它叫XmlResolver .

XmlResolverSystem.Xml 抽象之一,这意味着您可以在各种 API 中使用它,例如 XslCompiledTransformXmlDocumentXmlReader(通过XmlReaderSettings)等

这里更深入地介绍了它的工作原理,以及您可以如何使用 implement your own resolver .

默认情况下,这些不同的 API 使用 XmlUrlResolver ,它可以解析以 http://file:// 开头的 URI。

此外,为了解析外部实体,您可以覆盖默认值 ResolveEntity methodXmlReader 上。

关于c# - C# 和 .NET 中是否存在 Java URIResolver 概念?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/942882/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com