gpt4 book ai didi

c# - .NET Xsl 脚本转换结果 'System.Object' 未定义或导入

转载 作者:太空狗 更新时间:2023-10-29 21:42:17 26 4
gpt4 key购买 nike

XSL 新手,但完全卡住了!

我有一个使用 c# 脚本函数格式化日期的转换,当我在 VS 2008 中运行“显示 xml 输出”时,这工作正常,输出正是我想要的。

但是,当我尝试使用代码运行它时出现错误

Predefined type 'System.Object' is not defined or imported

调用转换的函数看起来像这样,它非常基本并且在我开始使用脚本之前就可以工作了

public static string RunXSLT(string xsltFile, string inputXML)
{

XslCompiledTransform transform = new XslCompiledTransform();
XsltSettings settings = new XsltSettings();
settings.EnableScript = true;

transform.Load(xsltFile, settings, null);

StringReader sReader = new StringReader(inputXML);
XmlTextReader xmlTextReader = new XmlTextReader(sReader);

//Create an XmlTextWriter which outputs to memory stream
Stream stream = new MemoryStream();
XmlWriter xmlWriter = new XmlTextWriter(stream,> System.Text.Encoding.UTF8);


transform.Transform(xmlTextReader, xmlWriter);

stream.Position = 0;

XmlDocument XmlDoc = new XmlDocument();
XmlDoc.Load(stream);

return XmlDoc.OuterXml;
}

XSL 转换是这样的..

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
xmlns:msxsl="urn:schemas-microsoft-com:xslt"
xmlns:nlbExtension="urn:nlbExtension"
exclude-result-prefixes="msxsl nlbExtension">

<xsl:output method="xml" indent="yes"/>

<msxsl:script implements-prefix="nlbExtension" language="C#">
<![CDATA[
public string FormatDateTime(string xsdDateTime, string format)
{
DateTime date = DateTime.Parse(xsdDateTime);

return date.ToString(format);
}
]]>
</msxsl:script>

<xsl:template match="/">
<urlset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9
http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd"
xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"

<xsl:for-each select="./Collection/Content" >
<url>
<loc>http://www.nlb.org<xsl:value-of select="./QuickLink/text()"/></loc>
<lastmod><xsl:value-of select="./DateModified/text()" /></lastmod>
</url>
</xsl:for-each>
</urlset>
</xsl:template>
</xsl:stylesheet>

最佳答案

我知道这个问题很老了,但也许这对正在搜索这个问题的人有帮助。

我目前遇到了同样的编译错误,但在完全不同的 C# 编程主题中。

我正在使用 Sharp Develop 4.2 并且遇到了同样的问题。对我来说,解决方案是添加“mscorlib”到项目的引用。

这个错误是微软的一个已知问题,但不知道目前的情况。刚找到一些 2010 年的讨论。

不知何故这个引用丢失了,我现在不完全理解为什么我的其他项目在没有明确引用 mscorlib 的情况下工作,但也许这确实是错误本身;-)

最好的问候托马斯

关于c# - .NET Xsl 脚本转换结果 'System.Object' 未定义或导入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2041469/

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