草庐IT

xslt-tools

全部标签

xml - XSLT 转换以添加多个不存在的子元素

我有一个xml文档,看起来像这样:子元素c1和c2是可选的,但对于处理步骤,我需要它们存在。所以我正在尝试创建一个xslt样式表以将它们添加为空元素(子元素的顺序无关紧要)。这是我的样式表:只要缺少一个子元素,这就可以正常工作。但如果两者都缺失,则只创建c1。我如何防止这种情况发生并强制创建c1和c2(实际上是大约10个child)?谢谢。约斯特 最佳答案 不太喜欢xsl:if方法。只要您不介意更改节点的顺序,下面的内容可能会更好:基本思想是如果c1和c2节点存在则显式生成其内容,如果不存在则不生成内容。

xml - 在 xml/xslt 中分组/合并相同节点的子节点

我是XSLT的新手,手动更改它会花费很多时间。我希望将这些多个GroupData节点的子节点放在同一组中,即所以我需要在GroupData的ID和Key属性(这些在文件中有所不同)上合并/组合/匹配它们。还有一些没有Key属性。我怎样才能做到这一点?我阅读了一些其他线程(例如,在C#中,但我没有它)并且我检查了W3学校,但这些都是非常基本的例子。我正在使用最新的XMLTools2.3.2r908unicode(beta4)forNotepad++来应用可能的转换(不知道它是否支持XSLT2.0或XSLT1.0)。编辑:在尝试了下面的建议和各种事情之后我被卡住了,因为它有多个级别并且可能

xml - 使用 XSLT 标记匹配正则表达式的文本?

我正在尝试在HTML文档上使用XSLT2.0(Saxon-PE9.6)来创建标记,这些标记围绕来自指定的非拉丁Unicodeblock(允许空格)的所有连续字符运行。我需要将此过程应用于文档中的每个text()节点。我通过使用的两种方法取得了一些进展。并使用fn:replace()但我一直无法得出令人满意的完整解决方案。例如,这里有一些包含印地语的文本:输入:चायकाकपmeans‘cupoftea’inहिन्दि.期望的输出:चायकाकपmeans‘cupoftea’inहिन्दि.如何在XSLT2.0中实现此过程?这是我对的尝试:(注意:印地语使用梵文代码块U+0900到U

java - 使用 XSLT 复制 XML 时绕过命名空间

从具有默认namespace的XML开始:foobar我应用XSLT来删除“C”元素:我最终得到以下XML(不折叠“B”是可以的,因为我使用HTML作为输出方法):foo但是如果我得到另一个XML,这次带有命名空间:foobar“C”元素在XSLT处理后未被删除。我可以做些什么来绕过这个命名空间,有什么办法吗? 最佳答案 不太值得推荐,但有效:更好: 关于java-使用XSLT复制XML时绕过命名空间,我们在StackOverflow上找到一个类似的问题: h

xml - 在 XSLT 中查找所有子元素的最大值并获取其父元素

使用下面的XML,我需要弄清楚哪个人在每个网站上工作的时间更长。例如,在下面的XML中,人员1在站点1工作了8小时,但人员2只工作了6小时。因此,结果应包含转换后的XML中的人员1和站点1。如果时间相等,则选择第一人称。编辑:我希望使用XSLT1.0来实现它。8296102XSLT转换结果应该是这样的: 最佳答案 这个XSLT1.0转换:应用于提供的XML文档时:8296102产生想要的、正确的结果:请注意:使用Muenchian方法进行分组以查找所有不同的Site值。最大值的查找方式是按降序排序并从已排序的节点列表中获取第一个结果

xml - xslt : How can I apply two templates to the same node during processing?

我有一个XSL模板,可以匹配任何带有的元素child:thenwehavetoputthestuffinsideitinsideit-->它连接了attr将var元素的s放入editableparent的属性;和ok进入constraint然后我有一个匹配任何的模板元素:true这只是将其转换为如果该字段有一个名称,则使用与该字段相同的名称,否则为“true”。我遇到的问题是,*[var]如果字段具有,则匹配该字段作为一个child。但我想要发生的是*[var]匹配首先,然后是field匹配以及,但之后。目前,输入为Text我明白了Text但是我想要Text我在SO上找到了一些关于进行

xml - XSLT 删除重复项

我有一个如下所示的xml数据源:我的XSLT看起来像这样:East我想把该地区的所有部门都写出来。我现在的代码将写出重复的部门。但是我怎样才能只写出该地区的部门一次呢?谢谢! 最佳答案 您还没有显示您想要的输出。但是在XSLT2.0中,您可以这样做: 关于xml-XSLT删除重复项,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/5509424/

xml - 从 XSLT 中删除 namespace

您好,我正在编写一个XSLT,我正在其中使用功能。现在,当它被执行时,来自xml的命名空间也会被复制。为了删除它,我使用了类似的函数.但是如果Child有更多的子元素,那么namespace就会出现在其中。所以任何人都可以告诉我如何删除它。下面是我正在使用的xslt和XML的片段。XML是:DayPhone命名空间没有出现在CustomerParty中,但它们出现在Child中,但它们出现在GrandChild中。 最佳答案 copy-namespaces="no"属性不会剥离所有命名空间节点——如XSLT2.0spec中所述:如果

c# - XSLT 与 XMLDocument 数据类型 -> 使用 foreach 循环遍历节点 -> 附加到文字控件

我有一个关于使用.NET框架在C#中设置XML样式的问题。我在一个网站上工作,该网站有99%的数据存储为XML。很多时候,我坚持使用XSLT来转换此XML,或者将XML读入XMLDocument数据类型,使用XPATH对其进行解析,然后基本上将输出附加到整个页面的Literal服务器控件中以处理显示。我感觉后者在内存方面要昂贵得多,因为我正在将XML读入数据类型并使用foreach语句和其他逻辑语句循环遍历节点。我通常这样做的唯一原因是因为我更愿意这样做,而且因为我绝不是XSL大师,所以这是我完成我需要做的事情的唯一方法。我想我想知道是否有人知道这样做要多多贵?除了我正在解析的xml的

xml - 新手 : XSLT Transformation to validate rules in XML document

我是XSLT的新手。我有一个XML文档,我需要使用xslt来验证XML文档中的某些规则。XML和xsl文件将在xsltproc工具中使用,输出将是简单的通过或失败。示例XML:........Manager(在本例中为Employee)下的child数量必须等于或大于mincount属性的值。所有员工的等级必须低于经理等级。感谢您的帮助!TIA! 最佳答案 这是一个XSLT1.0选项,它给出了通过/失败。“失败”中还有其他详细信息,但可以将其删除。它还将消息输出到stdout和stderr并终止处理。=@mincount)">=to