草庐IT

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

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

xml - XSL : Determine sequence across ancestors

我有一个XML示例,如下所示:1600PennsylvaniaAvenue211BBakerStreet17CherryTreeLane3505thAvenue我想生成如下所示的输出:1600PennsylvaniaAvenue211BBakerStreet17CherryTreeLane3505thAvenue这样addressId反射(reflect)了address的顺序所有location具有相同id的实例属性。我在想将是我的答案,但我的尝试失败了:--> 最佳答案 这是一种解决方法,通过简单地计算具有相同id属性的loca

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

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

xml - 将节点列表分成两半

foobar我的列表有12个节点,但第二个列表总是8个,第一个总是4个。我的选择有什么问题? 最佳答案 当您执行count(*)时,当前节点是正在处理的node元素。您想要count(current()/node)或last()(首选),或者只计算变量的中点以获得更好的性能和更清晰的代码:foobar 关于xml-将节点列表分成两半,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/

xml - 检查输出中的重复元素

我有一些XML,出于示例目的,它看起来像这样:testt2t3我想用XSLT转换它,但我想抑制输出中的第二个f2元素-当源中的第二个f2元素出现时,如何检查我的模板内部以查看f2元素是否已存在于输出中处理了吗?我的XSLT目前看起来像这样:我认为我需要对模板中的xsl:element进行某种检查,但我不确定如何询问输出文档以查看该元素是否已经存在。编辑:忘记了pre标签,代码现在应该可见了! 最佳答案 这取决于您想要的系统范围。即您是否只关心同一父级的子元素,或同一级别的所有元素(如果您愿意,可以使用“表兄弟”)或文档中任何位置的元

xml - 导入的空白 xmlns =""属性

我正在尝试对XML文档进行转换。根据特定元素的值,我的XML转换可以产生两种不同类型的基本元素:然后使用自己的命名空间和schemaLocations创建StructureA或StructureB:StructureA和B共享一些公共(public)元素,因此这些元素在名为“xmlcommon.xslt”的单独文件中定义,这两个结构都包含模板。这个xmlcommon文件没有定义默认命名空间,因为我希望它可以从StructureA或StructureB中定义的命名空间中使用。但是当我运行我的转换时,从公共(public)文件中提取的任何模板都会导致空白的xmlns属性:Something

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

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

xml - XSL : How to test if the current node is a descendent of another node

我是XSLT的新手,但目前需要将其用于CMS。我已经提出了一个问题,但我将尝试描述我的问题,而不会深入了解有关底层CMS的太多信息。如果您需要更多上下文来帮助我,我可以添加。所以我想做的就是测试我的xml的节点是否是特定节点的后代。Writethisout.有什么想法吗?提前致谢:) 最佳答案 您应该使用联合操作和节点集大小比较:Writethisout.如果$someNode是$currentNode的祖先,$someNode|$currentNode/ancestor::*将返回与$currentNode/ancestor相同的

c# - 转换大型 Xml 文件

我使用这种扩展方法通过xslt转换非常大的xml文件。不幸的是,我在source.ToString()行上遇到了OutOfMemoryException。我意识到一定有更好的方法,我只是不确定那会是什么?publicstaticXElementTransform(thisXElementsource,stringxslPath,XsltArgumentListarguments){vardoc=newXmlDocument();doc.LoadXml(source.ToString());varxsl=newXslCompiledTransform();xsl.Load(xslPath

xml - 从另一个节点的属性值中指定的路径检索 XML 节点

来自这个XML来源:testFizztestBartestLibtestFizz2testBar2testLib2我想生成这个HTML:TestFooBarFizztestBartestFizztestBar2testFizz2这是我目前拥有的XSLT:Test它几乎可以工作,我遇到的问题是从STRUCTblock的“nodeName”属性值中指定的路径检索正确的DATA节点。 最佳答案 这是一个不使用任何扩展的纯XSLT1.0解决方案:Test当此转换应用于提供的XML文档时:testFizztestBartestLibtestF