草庐IT

xslt-tools

全部标签

xml - 如何将参数传递给 XSLT?

我有一个问题。我有一个XML文件,其中包含有关100门类(class)的信息。我有一个XSL文件,可以很好地显示100门类(class)的列表。但是如果我只想显示1门类(class)怎么办?我可以将参数传递给XSLT文件以告诉它只显示“ENGL100”吗?XML看起来像这样:MTH300MathematicsSkillDevelopmentAcourseinthefundamentalsof...MTH301BasicAlgebraAnintroductiontoalgebra,......我知道我可以编写一个名为“eng100.xsl”的XSLT文件来遍历XML并仅显示ENG100,

xml - 如何根据节点属性动态更改 xslt 页面序列?

我遇到的问题的简化版本是这样的。对于像这样的XML文件:Item1Item2Item3Item4Item5Item6Item7Item8Item9Item10Item11Item12Item13Item14Item15Item16Item17Item18我需要能够在单列页面布局中打印具有“cols=1”的“项目”,以及在双列页面布局中打印具有“cols=2”的“项目”。必须保留项目的顺序。所有具有相同@cols值的连续“项目”都需要显示为连续流。每当@cols值发生变化时,我都需要跳转到一个新页面并根据需要更改布局。我正在做这样的事情:当然,问题是我要么必须在我的样式表中包含,要么不,

c# - XSLT 格式代码文档 (xml) 中的换行符

我们基于WinForms的应用程序获取由VisualStudio生成的文档文件(Xml文档),执行一些XSLT转换并将结果显示在我们表单内的WebBrowser控件中。问题是,我们似乎无法显示换行符,例如xml文档中的标记。例如:ThisissometestsummaryNewlinehere与XSL转换一起使用时,摘要文本将被截断为一行。为简化起见,转换执行此操作以选择摘要文本:我们如何才能正确地让新行显示在我们应用程序内的WebBrowser控件中?编辑:从WebBrowser控件添加“查看源代码”的内容。我所追求的是“Thisisamethod”之后的新行,等等。浏览器只是将其显

xml - xslt中两个正斜杠的目的是什么? "//"

我在一个XML类中并且有以下代码行..qty属性前的“//”有什么用?它指定什么? 最佳答案 //是/descendant-or-self::node()/的缩写虽然在某些表达式中它的行为类似于后代::但它并不相同。比如问题中的表达式descendant::@qty这将是一个语法错误,因为您不能在一个步骤中同时拥有后代轴和属性轴。/descendant-or-self::node()/@qty另一方面是一个合法的表达方式。另一个显着的区别是//*[1]它会选择作为其父元素的第一个子元素的每个元素。而/descendant::*[1]

XML 和 XSLT 将输出写入文本文件

我正在尝试在XSLT中使用增量。并将输出写入txt文件。这是我的代码:Xslt代码:XML代码是:1.0.0.0我尝试使用它给出错误提示不能是的child或.谢谢 最佳答案 您使用的方法是完美的声音。唯一的问题是您的样式表是XSLT1,对于您需要XSLT2。XSLT作为一种函数式语言与此问题无关。如有必要,请发布使用的XSLT代码我会为您解决。编辑:在此处对您的代码进行必要的更改。原始代码的一部分,例如method="text"表示您希望结果是一个文本文件,而看起来你正在尝试输出一个XML文件,所以我为两者编写了代码。如前所述,需要

xml - 使用 XSLT 转换 Heat 生成的 .wxs(添加 RegistryValue 并编辑一些值)

这是我想要的输出:这是我的XSLT文件:no这是我使用该XSL的输出:一旦我激活XSL中的文件更改不会应用,例如添加前缀、将key路径更改为否,如果我删除添加注册表的文件更改,文件更改就像一个魅力!我做错了什么?感谢任何帮助,谢谢。更新:这是未经转换的原始XML示例: 最佳答案 你说:AssoonasiactivateTheFilechangesthatareinXSLarenotappliedlikeaddaprefix,changekeypathtono,ifiremovetheonethataddstheregistrythe

xml - 如何使用 XSLT 1.0 阅读纯文本内容

源文件包含HelloWorld,thisisaniceworld将XSLT应用于输入文件所需的输出:我知道我可以在XSLT2.0中轻松使用unparsed-text,但我需要使用XSLT1.0。我浏览了一会儿,没找到有用的东西。这可能吗?我需要使用XalanXSLT处理器。我觉得这个问题很有挑战性。 最佳答案 输入文档不可能是纯文本,因为XSLT1.0转换的输入必须是格式正确的XML。以下是在XSLT转换中访问纯文本的一些替代方法:使用unparsed-text在XSLT2.0中。通过top-levelparameters(xsl:

.net - 在 Asp.Net Core 中加载 XSLT

如何在ASP.NETCore中从字符串加载XSLT文件?在完整的.NETFramework中,我可以使用:XslCompiledTransformobjXSLTransform=newXslCompiledTransform();objXSLTransform.Load(strXSLTFile); 最佳答案 正如我提到的here详细来说,您需要将您的.NETCore1.x应用程序升级到.NETCore2.0,因为.NETCore2.0实现.NETStandard2.0,它再次支持System.Xml.Xsl命名空间。您将能够再次使用

c# - 使用 C# 对大型 XML 文件进行 XSLT 转换

我有一些非常大的XML文件(800MB到1.5GB)。我需要对其应用XSLT。我能够阅读它XMLTextReader。当我应用XSLT转换时,出现SystemOutOfMemory异常。我的代码看起来像;staticvoidMain(string[]args){XDocumentnewTree=newXDocument();XmlTextReaderoReader=newXmlTextReader(@"C:\Projects\myxml.xml");using(XmlWriterwriter=newTree.CreateWriter()){XslCompiledTransformoTr

xml - 如何在 XSLT 中包装文本以适应窗口

我正在使用XSLT2.0从XML中提取数据。数据有很长的行,我想通过自动换行使它们适合窗口大小。在XSLT中可以吗? 最佳答案 您可以使用标准XSLT2.0函数unparsed-text()直接在XSLT2.0代码中读取文本文件。然后就用:replace(concat(normalize-space($text),''),'(.{0,60})','$1 ')解释:这首先规范化空白,删除前导和尾随纯空白字符序列,并用单个空格替换任何内部此类序列。然后规范化的结果用作标准XPath2.0函数的第一个参数replace().匹配模