本文介绍了XSL文档()函数错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述 29岁程序员,3月因学历无情被辞! 有人可以解释一下为什么会发生这种情况吗? 预期输出为3,但是第7行取消注释会使输出为0. 为什么??? VB.NET代码:**注意注释行,这是罪魁祸首** Dim xsl As New System.Xml.Xsl.XslTransform() Dim xw As New System.IO.StringWriter() Dim xmldoc As New System.Xml.XmlDocument() Dim xsldoc As New System.Xml .XmlDocument() xmldoc.Load(" test.xml") xsldoc.Load(" test.xsl") ''xsldoc.LoadXml(xsldoc.OuterXml) xsl.Load(xsldoc.CreateNavigator) xsl.Transform(xmldoc.CreateNavigator,Nothing,xw) Console.Write(xw.ToString) XML输入:(test.xml) < xml> < node1 val =" hello world" /> < / xml> XSL输入:(test.xsl) < xsl:stylesheet version =" 1.0" xmlns:xsl =" http://www.w3.org/1999/XSL/Transform"> < xsl: template match =" /"> < xsl:value-of select =" count(document('''')// *)" /> < / xsl:template> < / xsl:stylesheet> 请解释为什么会发生这种情况,我不想在我的 计划中使用任何文件I / O! 谢谢。 --scottCan someone please explain why this happens?The expected output is 3, but uncommenting line 7 makes the output 0.Why ???VB.NET code: ** note the commented line, this is the culprit **Dim xsl As New System.Xml.Xsl.XslTransform()Dim xw As New System.IO.StringWriter()Dim xmldoc As New System.Xml.XmlDocument()Dim xsldoc As New System.Xml.XmlDocument()xmldoc.Load("test.xml")xsldoc.Load("test.xsl")''xsldoc.LoadXml(xsldoc.OuterXml)xsl.Load(xsldoc.CreateNavigator)xsl.Transform(xmldoc.CreateNavigator, Nothing, xw)Console.Write(xw.ToString)XML input: (test.xml)<xml><node1 val="hello world" /></xml>XSL input: (test.xsl)<xsl:stylesheet version="1.0"xmlns:xsl="http://www.w3.org/1999/XSL/Transform"><xsl:template match="/"><xsl:value-of select="count(document('''')//*)" /></xsl:template></xsl:stylesheet>Please explain why this happens, I do not want to use any file I/O in myprogram!Thanks.--scott推荐答案 当你从一个字符串加载XSLT时,它没有基本URI和relatiev URI 因此无法解决。 不要加载来自字符串的XSLT或者如果你需要,提供基本URI: xslt.Load(new XmlTextReader(" foo.xsl",new StringReader(strXSL))); - Oleg Tkachenko [XML MVP] http://blog.tkachenko.com 这篇关于XSL文档()函数错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持! 上岸,阿里云!
08-18 08:23