![](/img/trans.png)
[英]What happens when I don't add [DataMember] to a field in [DataContract]?
[英]What happens when I pass an XsltParameter to an XSLT but don't define it in the XSLT?
我正在寻找当你执行以下操作时会发生什么:
创建一个XslCompiledTransform
创建一个XsltArgumentList
使用xslArg.AddParam("name", "", "value")
将参数添加到列表中
加载未定义<xsl:param name="name" />
的XSLT
这是否会导致错误,或者.NET XSLT引擎是否正常处理?
这在运行时没有问题, XsltArgumentList中提供的参数被XslCompileTransform类的Transfrorm方法忽略。 请注意,加载样式表永远不会成为问题,因为不需要为该方法提供参数绑定。
var xct = new XslCompiledTransform();
var xslArg = new XsltArgumentList();
xslArg.AddParam("name", "", "foobaz");
xct.Load(XmlReader.Create(new StringReader(
@"<xsl:stylesheet version=""1.0"" xmlns:xsl=""http://www.w3.org/1999/XSL/Transform"">
<xsl:template match=""/"">
result:<xsl:value-of select=""."" />+
</xsl:template></xsl:stylesheet>")));
var ms = new MemoryStream();
xct.Transform(
XmlReader.Create(new StringReader(@"<root>bar</root>")),
xslArg,
ms);
var s = UTF8Encoding.UTF8.GetString(ms.ToArray());
s.Dump();
产出量:
<?xml version="1.0" encoding="utf-8"?>
result:bar+
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.