- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我试了又试,但我无法在不从磁盘加载样式表(通过将 URI 传递到 XslCompiledTransform.Load() 方法)的情况下进入 XslCompiledTransform。
我完全清楚,如果您通过 URI(如前所述)从磁盘加载样式表,或者通过从实现 IXmlLineInfo 接口(interface)的 XmlReader 加载样式表,则只能进入 XslCompiledTransform.Transform() 方法。
我已经按如下方式加载了样式表:
XslCompiledTransform xslt = new XslCompiledTransform(true);
//grab string from textbox
XmlReader reader = XmlReader.Create(new StringReader(XsltBox.Text));
// Compile the style sheet.
xslt.Load(reader);
从我阅读的各种文献来看,这似乎是启用调试的方式。但是,当我尝试进入 XslCompiledTransform.Transform() 方法时,我收到消息:“当前位置没有可用的源代码”
如前所述,如果我执行以下操作,我可以进入转换:
string stylesheet = @"C:\PathToMy\Stylesheet.xsl";
// Enable XSLT debugging.
XslCompiledTransform xslt = new XslCompiledTransform(true);
//compile stylesheet
xslt.Load(stylesheet);
上述方法是不可能的,因为我不希望不断地读取和读取磁盘。
感谢您的有用评论,我没有意识到微软已经这样做了,我相信这将在未来证明非常有帮助。
但是,我想我的问题并没有完全清楚。我没有考虑进入加载方法,我想进入转换方法,这样我就可以看到 xsl 转换发生了什么。我强调了 load 方法,因为您传入的参数决定了您是否能够调试转换方法(您必须传入一个实现 IXmlLineInfo 接口(interface)的 XmlReader 才能这样做)。
虽然我可以使用您强调的技术单步执行转换方法,但我只是单步执行代码。尽管我可能通过观察代码找出转换过程中发生了什么,但 xsl 调试器逐行显示了实际样式表本身的单步执行(与执行转换的每一行的代码相反)
最佳答案
最近 Microsoft 发布了 .Net Framework 的符号和源代码,以允许在这种情况下进行调试。设置需要几秒钟的时间,但是完成后,无论您如何构建 XslCompiledTransform,您都应该能够进入 Load 方法。
它太详细了,无法给出 SO 答案,但这里有一篇关于该主题的优秀博客文章。
关于c# - C# 中的 XslCompiledTransform 调试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/451348/
我有一个包含 805 模板的大型 XSLT 文件,根据系统和环境,该文件会因堆栈溢出而失败。 开发环境为 Windows 7、InfoPath 2010 和 C#。尽管安装了 .NET 4.0,但此版
MSDN for .NET System.Xml.Xsl.XslCompiledTransform 类状态: Thread Safety [1] The XslCompiledTransform ob
我在搞乱编码。 一方面,我有一个以 UTF-8 格式响应我的 url(我非常确定,感谢 firebug 插件)。 我使用以下代码打开读取 UTF-8 内容的 url: StreamReader rea
XslTransform 似乎已被 Microsoft 弃用,而支持 XslCompiledTransform。从理论上讲,如果我在应用程序执行期间只进行一次转换,那么解释 XSLT(通过 XslTr
使用以下代码: XDocument transformedDoc = new XDocument(); using (XmlWriter writer = transformedDoc
我正在尝试使用 XslCompiledTransform,并将输出用作 XPathDocument。 有什么想法吗? 最佳答案 先生。琼斯的回答对我很有帮助,但我发现最后一行不起作用。我最终这样做了:
不幸的是,我正在开发一个对所有内容都使用 XSL 的网站。表现可怕。花在 JIT 上的时间大约是 30%! 我一直认为这家公司需要 4 台服务器来运行其小站点这一事实归结为 XSL,但我终于做了一个适
我想读取一个 xml 文件,应用一个转换,然后写入另一个文件。我能想到的最好的方法是: using (XmlTextReader reader = new XmlTextReader(new File
我正在尝试将大型应用程序从 XslTransform 迁移到已编译的 xsl 文件和 XslCompiledTransform。 应用程序使用 Xsl 创建 HTML 文件,转换数据 (Xml) 通过
我正在使用 XslCompiledTransform 将 XML 文件转换为 HTML。有什么方法可以阻止它使用自闭合标签。 例如 无论我使用哪种浏览器,span 上的自闭合标签都会弄乱我的文
为 制作了一个带有输出指令的 xslt 模板: 在 xsl-debug 中我接收正确 在 html 之上。 但是当我使用 XslCompiledTransform 等时..输出开始于 因此,缺
我有一个 XslCompiledTransform对象,我希望输出为 XmlReader对象,因为我需要通过第二个样式表传递它。我有点困惑 - 我可以成功转换一些 XML 并使用 StreamRead
我试了又试,但我无法在不从磁盘加载样式表(通过将 URI 传递到 XslCompiledTransform.Load() 方法)的情况下进入 XslCompiledTransform。 我完全清楚,如
我有以下代码需要从 VS 2003 (.Net 1.1) 迁移到 VS 2008 (.Net 2+)但我收到编译错误 - System.Xml.Xsl.XslTransform' 已过时:此类已被弃用
我有以下代码,我想使用UTF-8编码格式输出xml数据。但它始终以 UTF-16 格式输出数据: XslCompiledTransform xslt = new XslCompiled
我正在尝试在 Excel 中获取一张表并使用 VBA 创建一个 XML 文档,然后使用 XSLT 样式表转换该文档。 我已经包含了下面的代码,直到我遇到问题为止。 当我尝试像这样创建一个对象时: Di
有人能告诉我为什么会这样吗? 我的 XML 是: some text goes here a top elem today a subnode
以下代码工作并从本地磁盘获取 XSL 和 XML,并将转换后的 XML 返回到变量 Xtransoutput。 Dim XmlInputPath As String = "C:\Any.XML" Di
我使用以下 VB.NET 代码将一些 XML 转换为新的 XML,然后继续处理。这是一次性过程,而不是多次完成的过程,因此据我所知,缓存不会提高效率。 代码有效,但我发现性能问题。我知道性能问题可能与
我有以下 xslt ,我需要使用 xslt 2.0 版功能,如“格式日期”。如何使用 XsltCompiledTransform 类(c#、.net 4.5)声明 Xsl 工作表使用 2.0 版。
我是一名优秀的程序员,十分优秀!