问题标签 [apply-templates]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
1029 浏览

wpf - 在 WPF 中以编程方式访问 CustomControl 的元素

我创建了一个自定义控件,其中只有一个 Grid。

这是代码的一部分Generic.xaml

对应MainView.cs如下:

现在我创建了另一个项目,我想以编程方式将此自定义控件包含到其中一个面板中。

这就是我在不同项目的 .cs 文件中所做的,我想在其中动态创建这个 CustomControl。

我真正想要的是,我想CustomControl动态创建,然后将其添加到TabItem. 所以,我想以编程方式访问Grid并添加它CustomControlDataGridOnApplyTemplate()仅当自定义控件显示在屏幕中时才被调用。在我的情况下,它给出了异常说"MainViewGrid is null" 所以,在这种情况下我如何访问 MainView CustomControl 的元素,或者更确切地说调用OnApplyTemplate(),以便我可以“找到” Grid 并将 DataGrid 添加到它。

0 投票
1 回答
102 浏览

xslt - 在 XSLT 1.0 中为孙子中的每个标记复制节点()并用标记替换孙子的元素文本?

我的(简化的)输入XML 如下所示:

请注意,它term可能包含多个材料的逗号分隔列表 ( metal, glass)。

期望的输出:

我想拆分material/term并需要为此复制Material具有所有属性和节点的祖父母。

MaterialGroup为分隔的孙元素中的每个标记复制第一个material/term,并将term文本设置为标记文本。material.parts并且material.notes可以原封不动地复制。

我的样式表:

实际输出:

标记 ( metal, glass) 作为子元素作为文本元素出现MaterialGroup,如下所示material.parts。它应该实际出现的文本元素 ( material/term) 没有改变。

我查看了针对类似问题的几个解决方案,但没有成功:

https://stackoverflow.com/a/5480198/2044940
https://stackoverflow.com/a/10430719/2044940
http://codesequoia.wordpress.com/2012/02/15/xslt-example-add-a-新节点到元素/
...

有任何想法吗?


编辑:马丁的解决方案,没有迈克尔建议的模式:

0 投票
1 回答
82 浏览

xslt - 此 XSLT 的正确选择属性是什么 ``标签?

我正在使用 xslt 来呈现对 json 的肥皂响应。我无法控制肥皂服务。

我可以用来<xsl:apply-templates>处理几个元素,但我无法让其中一个模板工作。我让它使用<xsl:for-each>.

源 XML

我需要提取每个文档的主要属性并“展平”<a:DocumentMetaDataEntry>元素,如下所示:

期望的输出

以下 XSLT 给了我我想要的东西,但我想简化它以删除第二个<xsl:for-each>(如果可能的话,还有第一个!)

工作 XSLT

我想用模板替换第二个 for-each ,如下所示,但我无法匹配:

非功能性 XSLT

我知道这真的很简单,但是我在这里和其他地方花了很多时间,我只是无法理解模板是如何工作的。 标签的正确选择属性是什么?<xsl:apply-templates>

如果我也可以替换第一个 for-each ,那么额外的空灵大象真棒......

0 投票
1 回答
1181 浏览

xml - 将 XSLT 模板应用于从函数返回的字符串

(这里的所有代码都是从它的原始版本简化的)

我的公司有一个在 XSLT (1.0) 中使用的函数,它从我们的文件系统的文件中返回内容。我需要能够使用apply-templates. 考虑以下示例:

主要 XML 文件:

外部 XML 文件:

我尝试将以下 XSLT 应用于主 XML 文件

XSLT:

结果只是“一些默认图像”。

为了确保我得到一个 XML 结构,而不仅仅是我尝试的所有节点(或其他东西)的值:

它返回了原始的外部 XML 文件结构:

我也试过:

它按预期返回“path/to/image.png”。

最后,根据这个问题的答案,我尝试了以下 XSLT:

输出与原始的相同apply-template

有什么方法可以应用于apply-templates从函数返回的值?我可以清楚地将字符串发送到copy-of, value-of,甚至对其执行 xpaths;我可以根本不使用它apply-templates吗?


选择答案的解释

事实证明,我的问题的解决方案非常具体(我将模板应用到与该相同模板匹配的节点,而这在我提供的代码的简化版本中并不清楚)。我真的在这个上赢得了我的-1。 无论如何,我觉得keshlam的回答对将来访问这个问题的人最有帮助,因为它回答了我认为我的问题是什么。

0 投票
1 回答
254 浏览

xml - XSL1.0 - Apply-templates 只接受第一个子节点

我正在研究报告dip-sensor数据的新增功能。但是我遇到了一个问题,即apply-templates只检查第一个<filter>节点而不检查其余节点。

我也尝试将代码更改为使用 afor-each而不是apply-templates,但仍然没有运气。

XML 文件:

XSL v1.0:

结果: 66

期望: 663143

结果只显示66但应该显示,663143因为它应该已经捕获了.source/typedestination/type<filter><filter-list>

可以有任意数量,<dlp-sensor>每个可能有不同数量的<filter>. 我究竟做错了什么?

0 投票
1 回答
2795 浏览

xml - 使用 XSLT 将 HTML 转换为纯文本 - 应用模板和内容顺序

我正在尝试使用 XSLT 将 HTML 文档转换为纯文本文档。但是,我对 XSLT 还是很陌生,我不明白为什么我的转换输出与我想要的输出不同。

我的输入 HTML 文档:

我想要的输出(纯文本):

我的 XSLT:

应用上述 XSLT 输入 HTML 文档的结果:

我想要做的是将 HTML 文档中的标签内容放入纯文本中,以便内容出现在 HTML 文档中。相反,这种转换所做的是将与相同 XPATH 匹配的所有元素一个接一个地放置。

我怀疑该解决方案正在使用apply-templates元素,但是我不明白它是如何工作的,因此在上面的示例中使用它时遇到了麻烦。

0 投票
1 回答
317 浏览

html - 缺少节点或属性时创建 HTML TD 单元格

我正在努力改进我继承的一些样式表,并将它们从 using 转换<xsl:for-each><xsl:apply-templates>. 我将使用的 XML 文件之一的一个非常简化的版本是:

我拥有的新样式表是:

但是,由于 XML 中的第二个节点缺少该<Region>属性,结果上的单元格未对齐,名字现在在 Region 列中,Last name 在 First name 列中等等。如果 Row 节点上缺少子节点,也会发生这种情况。例如,没有团队元素

我曾尝试在调用应用模板之前以及在最后两个模板中测试丢失的节点,但无济于事。

有任何想法吗?我在这里想念什么?我才刚刚开始使用应用模板,但其他编写样式表的方法我都很好。

0 投票
2 回答
503 浏览

xml - 使用 XSLT 复制一条记录并写入 xml 两次

我需要使用 XSL 复制我的 xml 记录两次,没有任何 1 可以指导我。xml看起来像

<data> <record> <a>ABC</a> <b>ABC</b> <c>ARUN</c> <d>JAY</d> <e>SHREE</e> <f>MAKU</f> <z>MACK</z> </record> </data>

条件是 IF(a=b) 那么我们必须创建两条记录,即 a,b,c,d,e,z ​​和第二条记录,即 a,b,c,d,f,z 。和 IF(a!=b) 比只有 1 条记录,即 a、b、c、d、f、z。我已经完成了后半部分,但不能写两次记录。

我的 XSL 看起来像:-

any1 可以帮我写两次记录吗?

0 投票
0 回答
63 浏览

r - R - 我可以在这里避免 for 循环吗?

我是一个 R 新手,试图使用应用功能,推荐为好风格,但我失败了。

我有两个数据框 - 一个是我的银行对帐单中的记录集合,另一个是从数据库中读取的一堆记录,详细说明了一个正则表达式模式以应用于报表中的一个或其他列并将值分配给一个帐户类别,有时是交叉引用。

我已经定义了一个函数,它将每个正则表达式模式记录应用于语句数据帧,但是对模式集中的每个记录使用应用函数只在原始语句数据帧上操作 - 而不是由应用程序操作的框架任何以前的模式。

我怀疑这是一种操作本质上是按顺序排列的情况,因此应用函数永远不会起作用 - 但我错过了什么吗?为了准确显示我正在尝试做的事情,下面是使用 for 循环的代码,它确实有效:

0 投票
0 回答
752 浏览

xml - Maximum number of xml nodes in document?

i have the following XML Structure (for example)

In my XSL transformation i try to apply a template like <xsl:apply-templates/> and give the matched node with the attribute 'n1'.

That works fine if my XML document have a maximum number of 4388 XML nodes (with attribute 'm1'). But it does not work if the number of XML nodes (with attribute 'm1') are higher than 4390 nodes.

Is there a limit of xml nodes to use apply-templates like in my example?