草庐IT

xslt2processor

全部标签

xml - 在 Perl 中添加对 XSLT 的引用,仅使用 XML :LibXML

我有一个动态创建的XML。但是,我想在其中添加对XSLT文件的引用,以便能够在Mozilla中将XML文件呈现为HTML。我希望我的最终XML像这样开始:我无法安装XML::LibXSLT,因此这不是解决方案。另一种解决方案是将XML写入文件,将其作为常规文件打开并向其添加XSLT引用-但这对我来说似乎不合适。是否有优雅的解决方案?编辑:添加了一些代码usestrict;usewarnings;useXML::LibXML;my$final_xml=XML::LibXML::Document->new('1.0','utf-8');my$root_node=$final_xml->cr

xml - XSLT 和临时文档

我正在尝试处理一个包含多个不同状态组的xml文件,例如16init......process...........17...我需要的实际上是得到类似的东西...............我已经完成了简单的部分,即将向所有子元素添加“chgrpno”属性和stateid属性(它复制除子组和状态之外的所有元素,将属性添加到这两个元素。这行得通,结果所有child都有属性,所以我可以在下一次通过时重新组合它们,状态有数字,所以我以后可以做同样的事情。但是当我尝试做的时候,试图用“临时文件”来效仿M.Kay的例子然后它只是将原件返回给我,我在第一遍中所做的所有更改都消失了。那我在这里做错了什么?

xml - 如何在 XSLT 中获取行号?

当我们将XSLT应用于XML时,是否可以获取行号?当在XML中找到特定的模板匹配项时,我需要知道行号。是否可以检索行号? 最佳答案 如果您指的是源文档中节点的行号,Saxon使用扩展函数提供此信息saxon:line-number(),前提是源文档是通过报告行号的接口(interface)(例如SAX解析器)提供的。对此没有标准的XSLT机制。 关于xml-如何在XSLT中获取行号?,我们在StackOverflow上找到一个类似的问题: https://st

xml - XSLT-选择以下项目直到特定标签

假设我有这个XML文件:JohnSmithAndyGooJosephLeeKennyMariaZoeMartin现在我想选择1st之间的元素和第二所以输出将是:GooJosephLeeKenny我所知道的是我们可以“复制”选择“z[1]”的“以下sibling”但我不知道如何在“z[2]”上停止它 最佳答案 选择以下两个节点集的交集:第一个z之后的所有节点第二个z之前的所有节点这两个集合的交集将是第一个和第二个z元素之间的所有节点。使用以下表达式:/*/z/following-sibling::*[count(.|/*/z[2]/p

xml - 使用 XSLT 从 XML 中检索所有属性值

我不知道如何从XML文档访问标记中的所有属性。假设我有以下XML:我想要以下输出:洛基巴尔博亚,伊万德拉戈,我目前拥有的是:我想知道的是,是否可以只用一个select值来执行此操作,而不必执行其中三个。所以澄清一下,我希望能够用一个单一的选择值输出标签中的所有属性。这可能吗?谢谢。 最佳答案 尝试以下操作: 关于xml-使用XSLT从XML中检索所有属性值,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.co

xml - XSLT 转换从 soap :env 中剥离所有命名空间

我有这个输入XML,我需要对其应用XSL并将其转换为另一个更高版本的XML。让我们说V3。所以输入XML的版本是V1。1114我申请的XSL是我得到的输出是1114它从xmlns:NS1="http://www.test1/Error/v1"xmlns:NS2="http://www.test1/Error/schema/SCRIPT"xmlns中剥离所有命名空间声明:tns="http://www.test1/webservice/Service/v1"xmlns:xsd="http://www.w3.org/2001/XMLSchema"xmlns:xsi="http://www.

xml - XSLT value() 和 position() 给出了不正确的索引

谁能解释一下为什么我将以下xsl文件应用于xml文件得到以下输出。12345678====================================of======================================2of174of176of178of1710of1712of1714of1716of17我不太明白为什么输出不是1of8、2of8等等。 最佳答案 尝试添加strip-space如下所示:of这给出了以下输出:1of82of83of84of85of86of87of88of8这是由于空格问题造成的,如do

xml - 使用 xslt 2.0 拆分大型 xml 文件

我有这个源xml文件。USVaUSVbUSV10....元素“KE”大约出现了30000次。我想每5000个“KE”创建一个新的XML文件。在30000个KE元素的情况下,结果必须是6个单独的xml文件,并且结构是源xml的副本。如何使用XSLT2.0实现这一点?我正在使用saxonhe9-5-1-3j。非常感谢... 最佳答案 使用XSLT2.0功能xsl:for-each-group和KE元素位置的模数。然后,使用xsl:result-document元素生成输出文档。我的示例XSLT代码为3个KE元素的组创建了一个新的结果文档

xml - 在 xslt 中添加两个有时可以为 null 的值

我想使用xslt将值从一个xml添加到另一个。我正在使用xml版本1。如果value1或value2有时为空并产生NaN,我该如何做?我知道我可以使用if和when来查看value1或value2是否不为空,但假设我无法检查它。我该如何解决这个问题?我想做的是,如果“number(/fields/field[@name='value2'])”会产生一个NaN,它应该是数字0那么它就可以工作。最好的问候乔 最佳答案 if"number(/fields/field[@name='value2'])"wouldproduceaNaNits

xml - 为什么现代 Web 浏览器不支持 XSLT 2.0?

我们正在考虑使用AltovaStyleVision。我们可以用它创建一个好的报告模板。Altova的默认浏览器很好地展示了我们的工作。但是,现代网络浏览器不支持生成的XSLT文件。有什么建议吗? 最佳答案 “为什么”的问题总是很复杂,因为通常没有单一的答案。但我认为部分答案是没有用C或C++编写的XSLT2.0的良好实现,就像libxslt那样。(xsltproc的后端)和XalanXSLT1.0存在。我无意挑起一场语言war,但无论好坏,大多数浏览器都是用C或C++编写的。 关于xml