Java解析器的概念是否存在于C#和.NET中?
在Java XML转换包中,有一个称为a的概念,它是“实现此接口的对象,处理器可以调用该接口,将document()、xsl:import或xsl:include中使用的URI转换为源对象。” 因此,如果您的XSL有这样的导入Java解析器的概念是否存在于C#和.NET中?,c#,.net,xslt,C#,.net,Xslt,在Java XML转换包中,有一个称为a的概念,它是“实现此接口的对象,处理器可以调用该接口,将document()、xsl:import或xsl:include中使用的URI转换为源对象。” 因此,如果您的XSL有这样的导入 <xsl:import href="URI"/> 注意,代码中有两个地方使用了URIResolver: 变压器厂 -“设定一个对象 默认情况下,在 转换以解析使用的URI 在document()中,xsl:import或 xsl:include。“ 变压
<xsl:import href="URI"/>
注意,代码中有两个地方使用了URIResolver:
- 变压器厂 -“设定一个对象 默认情况下,在 转换以解析使用的URI 在document()中,xsl:import或 xsl:include。“
- 变压器组 一个将用于 解析文档()中使用的URI。“
问题:在C#和.NET中是否有类似于Java URIResolver的概念?是的,模拟存在。
并且,它实现了接口 @跛脚鸭,我想你误解了这个问题 是的,它叫
XmlResolver
是System.Xml
抽象之一,这意味着您可以在各种API中使用它,例如,XmlDocument
,XmlReader
(通过XmlReaderSettings
)等
这里有一个更深入的关于它是如何工作的,以及如何实现的
默认情况下,这些不同的API使用,可以解析以http://
和file://
开头的URI
此外,对于解析外部实体,您可以覆盖
XmlReader
上的默认值,谢谢。XmlResolver是“处理包含和导入XSL样式表中的元素”所需的,我还发现要启用document()函数,我需要创建一个XsltSettings对象()。不,这与Java中的resolver类不同。这会将名称空间前缀解析为其名称空间,用于名称空间绑定。它们不会(并且在实现时不应该)检索外部实体。名称空间看起来像URL,但只是名称部分,而不是某处的实际位置。
URIResolver uriResolver = new MyURIResolver(); // sample
TransformerFactory transformerFactory = TransformerFactory.newInstance();
transformerFactory.setURIResolver(uriResolver);
Transformer transformer = transformerFactory.newTransformer();
transformer.setURIResolver(uriResolver);
transformer.transform(xml, result);