xslt 相关问题

XSLT是XML的一种转换语言,旨在将结构化文档转换为其他格式(如XML,HTML和纯文本,或者在XSLT 3,JSON中)。问题应该根据需要使用xslt-1.0,xslt-2.0或xslt-3.0标记之一。

使用动态命名空间对 XML 运行简单转换?

我从发送更改命名空间的子系统接收 XML 消息。 系统似乎会根据是否需要增加命名空间上的计数器。 我不知道SAP如何处理这个问题。 对于

回答 2 投票 0

我的导航 xsl 模板中缺少什么

我正在尝试找出适合我的 html 导航的完美 xsl 模板。 这是html代码 我正在尝试找出适合我的 html 导航的完美 xsl 模板。 这是html代码 <ul class="menu-section"> <li class="menu-item-has-children"> <a href="#">Accounts <i class="ion ion-ios-arrow-down"></i></a> <div class="menu-subs menu-column-1"> <ul> <li><a href="#">Login and Register</a></li> <li><a href="#">Help and Question</a></li> <li><a href="#">Privacy and Policy</a></li> <li><a href="#">Term of Cookies</a></li> </ul> </div> </li> <li><a href="#">Contact</a></li> </ul> 这是我的 XSL 模板: <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="xml" indent="yes"/> <xsl:template match="/"> <xsl:call-template name="menu"/> </xsl:template> <xsl:template name="menu"> <ul id="wixmenu" class="menu-section"> <xsl:apply-templates select="MENU/ITEM"/> </ul> </xsl:template> <xsl:template match="ITEM"> <li class="menu-item-has-children"> <a href="{URL}#" target="{TARGET}"> <xsl:value-of select="TITLE"/> <i class="ion"/> <xsl:value-of select="ICON"/> </a> <xsl:if test="ITEM"> <div class="menu-subs menu-column-1"> <ul> <xsl:apply-templates select="ITEM"/> </ul> </div> </xsl:if> </li> </xsl:template> </xsl:stylesheet> 得到的结果是: <ul class="menu-section"> <li class="menu-item-has-children"> <a href="#">Accounts <i class="ion ion-ios-arrow-down"></i></a> <div class="menu-subs menu-column-1"> <ul> <li class="menu-item-has-children"><a href="#">Login and Register</a></li> <li class="menu-item-has-children"><a href="#">Help and Question</a></li> <li class="menu-item-has-children"><a href="#">Privacy and Policy</a></li> <li class="menu-item-has-children"><a href="#">Term of Cookies</a></li> </ul> </div> </li> <li class="menu-item-has-children"><a href="#">Contact</a></li> </ul> 我想要什么 我希望子元素 [登录和注册、帮助和问题、隐私和政策以及 Cookie 条款] 不具有“menu-item-has-children”类。我只是想让 xsl 模板生成原始的 html 代码。 这是模板的一个版本,其中仅当当前 class 元素具有 menu-item-has-children 子元素时才添加值为 ITEM 的 ITEM 属性。 <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="xml" indent="yes"/> <xsl:template match="/"> <xsl:call-template name="menu"/> </xsl:template> <xsl:template name="menu"> <ul id="wixmenu" class="menu-section"> <xsl:apply-templates select="MENU/ITEM"/> </ul> </xsl:template> <xsl:template match="ITEM"> <li> <xsl:if test="ITEM"> <xsl:attribute name="class">menu-item-has-children</xsl:attribute> </xsl:if> <a href="{URL}#" target="{TARGET}"> <xsl:value-of select="TITLE"/> <i class="ion"/> <xsl:value-of select="ICON"/> </a> <xsl:if test="ITEM"> <div class="menu-subs menu-column-1"> <ul> <xsl:apply-templates select="ITEM"/> </ul> </div> </xsl:if> </li> </xsl:template> </xsl:stylesheet> 顺便说一句,我想知道你的情况 <i class='ion'/><xsl:value-of select="ICON"/> 您是否打算将 ICON 元素的文本作为 i 元素的子节点? <i class='icon'><xsl:value-of select="ICON"/></i>

回答 1 投票 0

如何从 XML 源文档设置任意样式表参数?

我有一组 DocBook XML(文章)文档和以下要求:大多数文档应呈现(为 PDF)而不带编号部分,但某些文档确实需要编号...

回答 1 投票 0

XSLT:想要使用变量从节点集总和中排除

我有一个 xml,其中有多个存储桶,这些存储桶被汇总到一个 Total 中 我正在使用 xslt 2.0...... 生病付费 <...

回答 1 投票 0

XSLT 根据关键字段值重新分配序列号

我需要将序列号/MainHeader/Record/POSN重新分配为8001,8002....当我们有两个在/VAR字段中具有相同值的段时,如果/Child -->段存在u ...

回答 1 投票 0

如何使用 XSLT 将属性复制到新行

使用XSL,我试图找出一种将每个属性复制到新行的方法。但我无法得到解决方案。谁能告诉我如何使用 XSL 来做到这一点。 输入 XML: 使用 XSL,我试图找到一种将每个属性复制到新行的方法。但我无法得到解决方案。谁能告诉我如何使用 XSL 来做到这一点。 输入XML: <Pane attr1="value1" attr2="value2" attr3="value3"> <children> <title>A</title> </children> </Pane> 输出 XML: <Pane attr1="value1" attr2="value2" attr3="value3"> <children> <title>A</title> </children> </Pane> 这是 BaseX 11.0 及更高版本的解决方案。 记录在这里:序列化 输入XML <Pane attr1="value1" attr2="value2" attr3="value3"> <children> <title>A</title> </children> </Pane> XQuery declare variable $base_dir as xs:string := 'e:\Temp\IndentAttributes\'; for $x at $i in collection($base_dir) return file:write($base_dir|| file:dir-separator() || "output_" || $i || ".xml" , $x , map {'method': 'xml', 'indent': 'yes', 'indent-attributes': 'yes'}) 输出XML <Pane attr1="value1" attr2="value2" attr3="value3"> <children> <title>A</title> </children> </Pane>

回答 1 投票 0

如何在数组节点中设置某些属性值,同时保持xml文件的原始结构

我有带有多个worker块的xml。 仅当原始值不等于 null 时,我才想更改日期字段格式(从字符串到日期)。 此外,保持

回答 1 投票 0

带有数字函数的 XPath 1.0 谓词与 XSLT 输入中的所有非零值不匹配

我正在使用 xsltproc 命令并使用 number() 函数从谓词获得意外的输出。通过再现器来解释是最简单的。 复制者: 输入 我正在使用 xsltproc 命令并使用 number() 函数从谓词获取意外输出。通过再现器来解释是最简单的。 复制者: 输入 <top> <constraint> <lifetime> <rule id="rule1" original="1"/> <rule id="rule2" original="1"/> </lifetime> </constraint> <constraint> <lifetime> <rule id="rule3" original="1"/> <rule id="rule4" original="1"/> </lifetime> </constraint> </top> 样式表 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:strip-space elements="*"/> <xsl:output encoding="UTF-8" indent="yes" omit-xml-declaration="yes"/> <xsl:template match="/|@*|node()" name="identity"> <xsl:copy> <xsl:apply-templates select="@*|node()"/> </xsl:copy> </xsl:template> <xsl:template match="top"> <xsl:for-each select="constraint/lifetime/rule[number(@original)]"> <item> <xsl:copy-of select="."/> </item> </xsl:for-each> </xsl:template> </xsl:stylesheet> 实际产量 <item> <rule id="rule1" original="1"/> </item><item> <rule id="rule3" original="1"/> </item> 预期产量 <item> <rule id="rule1" original="1"/> </item><item> <rule id="rule2" original="1"/> </item><item> <rule id="rule3" original="1"/> </item><item> <rule id="rule4" original="1"/> </item> 如果我从 number(@original) 更改为 number(@original) = 1 或 @original = '1',我会得到预期的结果。如果我在 if 中使用 for-each 而不是使用 XPath 谓词,我也会得到预期的结果: <xsl:for-each select="constraint/lifetime/rule"> <xsl:if test="number(@original)"> <item> <xsl:copy-of select="."/> </item> </xsl:if> </xsl:for-each> number(@original) 始终在您的情况下返回 1。 IE。 XPath constraint/lifetime/rule[number(@original)] 表示 constraint/lifetime/rule[1],即元素 rule 中的第一个元素 lifetime。 如果你想检查@original是数字,那么你需要使用这个条件: constraint/lifetime/rule[number(@original) = @original] 或者 constraint/lifetime/rule[string(number(@original)) != 'NaN']

回答 1 投票 0

十进制 -> 十六进制 -> XSLT 中的字符编码

(1)我的要求是将DECIMAL INPUT转换为固定8位的十六进制表示法 (2) 通过一次选取 2 个字符,将十六进制结果转换为相应的字符编码。拜...

回答 2 投票 0

XSLT 中十六进制转换为 ASCII 字符编码

我们如何将以下十六进制输入转换为 XSLT 中的 ASCII 字符编码? 十六进制输入始终是固定的 8 个十六进制数字。你能帮忙吗,谢谢 XML

回答 1 投票 0

为什么在我的 XSLT 中使用 mode 属性只会让它打印整个 XML?

正在进行更大的转换,但能够在模型中复制它。如果我在 XSLT 模板中使用“mode”属性,结果只是原始文本(没有标记)...

回答 1 投票 0

XSL 文件使用 xml 数据创建 SVG 图表

iam 目前正在尝试通过 xsl 文件将 xml 报告转换为 html(到目前为止效果很好!),然后通过 xslt-fo 将 html 转换为 pdf。 我想创建一个 svg 饼图,其中包含一些数据...

回答 1 投票 0

如何在 XSLT 中将 Long 数据类型转换为 Hex 格式并在 XSLT 中执行 Long 解析。在 DataPower 中使用 XSLT

下面是我的.Net VB 代码。 我们如何在 XSLT 中实现以下代码(XSLT 将在 DataPower 中使用)。由于 XSLT 中没有 Long 数据类型,因此我们很难在 ... 中实现以下 .Net 代码

回答 1 投票 0

XSLT 在 2 个变量之间迭代并生成新变量

我有两个变量,看起来像 [...] [...]...

回答 1 投票 0

如何引用元素名称为number的子节点子集

我正在尝试转换 XML 文档,其中有一个包含子元素 Address[1-9] 的地址节点 目前,我使用以下 xslt 将所有行连接成一个输出 我正在尝试转换 XML 文档,其中有一个包含子元素 Address[1-9] 的地址节点 目前,我使用以下 xslt 将所有行连接成一个输出 <xsl:for-each select="$NodeOfAddress/*[starts-with(name(), 'in:AddressLine')]"> <out:AddressLine> <xsl:value-of select="."/> </out:AddressLine> </xsl:for-each> 这似乎对所有地址线都很有效。 但是,我只想对第 3-6 行执行此操作,而不是全部 9 行。 有没有一种方法可以在每个选择中指定这一点? 我确信我可以用一些 if 语句找出一种方法,但希望也许有一种类似于我上面的方法。 也许: <xsl:for-each select="$NodeOfAddress/*[starts-with(name(), 'in:AddressLine')][3 le position() and position() le 6}"> 在没有看到输入的情况下很难确定。

回答 1 投票 0

XSLT:根据子值显示元素和子元素

我的XML代码显示了员工的所有地址及其使用类型。仅当地址具有特定使用类型时才必须显示。其他人必须被删除。 下面是 xml。 我的 XML 代码显示员工的所有地址及其使用类型。仅当地址具有特定使用类型时才必须显示。其他的必须删除。 下面是xml。 <peci:Person_Communication> <peci:Address> <peci:Usage_Type>HOME1</peci:Usage_Type> <peci:Address_Line_1>Gen. Sochora</peci:Address_Line_1> <peci:Address_Line_3>31</peci:Address_Line_3> <peci:Address_Line_4>957</peci:Address_Line_4> <peci:City>Třebíč</peci:City> <peci:Postal_Code>674 01</peci:Postal_Code> <peci:Country>CZ</peci:Country> <peci:Usage> <peci:Usage_Behavior_ID>COMMUNICATION_USAGE_BEHAVIOR_TENANTED-3-6</peci:Usage_Behavior_ID> </peci:Usage> </peci:Address> <peci:Address> <peci:Usage_Type>HOME2</peci:Usage_Type> <peci:Address_Line_1>Gen. Sochora</peci:Address_Line_1> <peci:Address_Line_3>31</peci:Address_Line_3> <peci:Address_Line_4>957</peci:Address_Line_4> <peci:City>Třebíč</peci:City> <peci:Postal_Code>674 01</peci:Postal_Code> <peci:Country>CZ</peci:Country> <peci:Usage> <peci:Usage_Behavior_ID>COMMUNICATION_USAGE_BEHAVIOR_TENANTED-3-16</peci:Usage_Behavior_ID> </peci:Usage> <peci:Usage> <peci:Usage_Behavior_ID>COMMUNICATION_USAGE_BEHAVIOR_TENANTED-3-1</peci:Usage_Behavior_ID> </peci:Usage> </peci:Address> <peci:Address> <peci:Usage_Type>HOME3</peci:Usage_Type> <peci:Address_Line_1>Gen. Sochora</peci:Address_Line_1> <peci:Address_Line_3>31</peci:Address_Line_3> <peci:Address_Line_4>957</peci:Address_Line_4> <peci:City>Třebíč</peci:City> <peci:Postal_Code>674 01</peci:Postal_Code> <peci:Country>CZ</peci:Country> <peci:Usage> <peci:Usage_Behavior_ID>COMMUNICATION_USAGE_BEHAVIOR_TENANTED-3-8</peci:Usage_Behavior_ID> </peci:Usage> <peci:Usage> <peci:Usage_Behavior_ID>COMMUNICATION_USAGE_BEHAVIOR_TENANTED-3-9</peci:Usage_Behavior_ID> </peci:Usage> </peci:Address> <peci:Address> <peci:Usage_Type>HOME4</peci:Usage_Type> <peci:Address_Line_1>Gen. Sochora</peci:Address_Line_1> <peci:Address_Line_3>31</peci:Address_Line_3> <peci:Address_Line_4>957</peci:Address_Line_4> <peci:City>Třebíč</peci:City> <peci:Postal_Code>674 01</peci:Postal_Code> <peci:Country>CZ</peci:Country> <peci:Usage> <peci:Usage_Behavior_ID>COMMUNICATION_USAGE_BEHAVIOR_TENANTED-3-1</peci:Usage_Behavior_ID> </peci:Usage> <peci:Usage> <peci:Usage_Behavior_ID>COMMUNICATION_USAGE_BEHAVIOR_TENANTED-3-9</peci:Usage_Behavior_ID> </peci:Usage> </peci:Address> <peci:Address> <peci:Usage_Type>HOME5</peci:Usage_Type> <peci:Address_Line_1>Gen. Sochora</peci:Address_Line_1> <peci:Address_Line_3>31</peci:Address_Line_3> <peci:Address_Line_4>957</peci:Address_Line_4> <peci:City>Třebíč</peci:City> <peci:Postal_Code>674 01</peci:Postal_Code> <peci:Country>CZ</peci:Country> </peci:Address> <peci:Address> <peci:Usage_Type>HOME6</peci:Usage_Type> <peci:Address_Line_1>Gen. Sochora</peci:Address_Line_1> <peci:Address_Line_3>31</peci:Address_Line_3> <peci:Address_Line_4>957</peci:Address_Line_4> <peci:City>Třebíč</peci:City> <peci:Postal_Code>674 01</peci:Postal_Code> <peci:Country>CZ</peci:Country> <peci:Usage> <peci:Usage_Behavior_ID>COMMUNICATION_USAGE_BEHAVIOR_TENANTED-3-10</peci:Usage_Behavior_ID> </peci:Usage> <peci:Usage> <peci:Usage_Behavior_ID>COMMUNICATION_USAGE_BEHAVIOR_TENANTED-3-8</peci:Usage_Behavior_ID> </peci:Usage> <peci:Usage> <peci:Usage_Behavior_ID>COMMUNICATION_USAGE_BEHAVIOR_TENANTED-3-6</peci:Usage_Behavior_ID> </peci:Usage> <peci:Usage> <peci:Usage_Behavior_ID>COMMUNICATION_USAGE_BEHAVIOR_TENANTED-3-1</peci:Usage_Behavior_ID> </peci:Usage> </peci:Address> </peci:Person_Communication> 必须显示仅包含 COMMUNICATION_USAGE_BEHAVIOR_TENANTED-3-1 、 COMMUNICATION_USAGE_BEHAVIOR_TENANTED-3-16 和 COMMUNICATION_USAGE_BEHAVIOR_TENANTED-3-6 的地址以及不包含Usage 元素的地址。其余部分已被删除。 下面是我在 XSLT 代码中编写的逻辑。 <xsl:template match="peci:Person_Communication/peci:Address"> <xsl:variable name="AddUsage1" select="peci:Usage/peci:Usage_Behavior_ID[.='COMMUNICATION_USAGE_BEHAVIOR_TENANTED-3-16' or .='COMMUNICATION_USAGE_BEHAVIOR_TENANTED-3-6' or .='COMMUNICATION_USAGE_BEHAVIOR_TENANTED-3-1']"/> <xsl:variable name="AddUsage2" select="peci:Usage/peci:Usage_Behavior_ID[.='COMMUNICATION_USAGE_BEHAVIOR_TENANTED-3-9' or .='COMMUNICATION_USAGE_BEHAVIOR_TENANTED-3-8' or .='COMMUNICATION_USAGE_BEHAVIOR_TENANTED-3-10' or .='COMMUNICATION_USAGE_BEHAVIOR_TENANTED-3-11' or .='COMMUNICATION_USAGE_BEHAVIOR_TENANTED-3-12' or .='COMMUNICATION_USAGE_BEHAVIOR_TENANTED-3-13']"/> <xsl:choose> <xsl:when test="$AddUsage1 and not($AddUsage2)"> <xsl:copy-of select="."/> </xsl:when> <xsl:when test="$AddUsage1 and $AddUsage2"> <xsl:copy-of select="peci:Usage_Type|peci:Address_Line_1|peci:Address_Line_3|peci:Address_Line_4|peci:City|peci:Postal_Code|peci:Country|peci:Country_Region"/> <peci:Usage> <xsl:copy-of select="$AddUsage1"/> </peci:Usage> </xsl:when> <xsl:when test="not($AddUsage1) and not($AddUsage2)"> <xsl:copy-of select="."/> </xsl:when> </xsl:choose> </xsl:template>` 下面是输出。 <peci:Person_Communication> <peci:Address> <peci:Usage_Type>HOME1</peci:Usage_Type> <peci:Address_Line_1>Gen. Sochora</peci:Address_Line_1> <peci:Address_Line_3>31</peci:Address_Line_3> <peci:Address_Line_4>957</peci:Address_Line_4> <peci:City>Treb�/peci:City> <peci:Postal_Code>674 01</peci:Postal_Code> <peci:Country>CZ</peci:Country> <peci:Usage> <peci:Usage_Behavior_ID>COMMUNICATION_USAGE_BEHAVIOR_TENANTED-3-6</peci:Usage_Behavior_ID> </peci:Usage> </peci:Address> <peci:Address> <peci:Usage_Type>HOME2</peci:Usage_Type> <peci:Address_Line_1>Gen. Sochora</peci:Address_Line_1> <peci:Address_Line_3>31</peci:Address_Line_3> <peci:Address_Line_4>957</peci:Address_Line_4> <peci:City>Treb�/peci:City> <peci:Postal_Code>674 01</peci:Postal_Code> <peci:Country>CZ</peci:Country> <peci:Usage> <peci:Usage_Behavior_ID>COMMUNICATION_USAGE_BEHAVIOR_TENANTED-3-16</peci:Usage_Behavior_ID> </peci:Usage> <peci:Usage> <peci:Usage_Behavior_ID>COMMUNICATION_USAGE_BEHAVIOR_TENANTED-3-1</peci:Usage_Behavior_ID> </peci:Usage> </peci:Address> <peci:Usage_Type>HOME4</peci:Usage_Type> <peci:Address_Line_1>Gen. Sochora</peci:Address_Line_1> <peci:Address_Line_3>31</peci:Address_Line_3> <peci:Address_Line_4>957</peci:Address_Line_4> <peci:City>Treb�/peci:City> <peci:Postal_Code>674 01</peci:Postal_Code> <peci:Country>CZ</peci:Country> <peci:Usage xmlns:ptdf="urn:com.workday/peci/tdf"> <peci:Usage_Behavior_ID>COMMUNICATION_USAGE_BEHAVIOR_TENANTED-3-1</peci:Usage_Behavior_ID> </peci:Usage> <peci:Address> <peci:Usage_Type>HOME5</peci:Usage_Type> <peci:Address_Line_1>Gen. Sochora</peci:Address_Line_1> <peci:Address_Line_3>31</peci:Address_Line_3> <peci:Address_Line_4>957</peci:Address_Line_4> <peci:City>Treb�/peci:City> <peci:Postal_Code>674 01</peci:Postal_Code> <peci:Country>CZ</peci:Country> </peci:Address> <peci:Usage_Type>HOME6</peci:Usage_Type> <peci:Address_Line_1>Gen. Sochora</peci:Address_Line_1> <peci:Address_Line_3>31</peci:Address_Line_3> <peci:Address_Line_4>957</peci:Address_Line_4> <peci:City>Treb�/peci:City> <peci:Postal_Code>674 01</peci:Postal_Code> <peci:Country>CZ</peci:Country> <peci:Usage xmlns:ptdf="urn:com.workday/peci/tdf"> <peci:Usage_Behavior_ID>COMMUNICATION_USAGE_BEHAVIOR_TENANTED-3-6</peci:Usage_Behavior_ID> <peci:Usage_Behavior_ID>COMMUNICATION_USAGE_BEHAVIOR_TENANTED-3-1</peci:Usage_Behavior_ID> </peci:Usage> </peci:Person_Communication> 对于变量 $AddUsage1 和 $AddUsage2 都存在的情况,元素 peci:Address/ 丢失,并且使用行为的所有值都放置在单个 peci:Usage 下,而不是单独的元素下。请帮我修复以下逻辑。 <xsl:when test="$AddUsage1 and $AddUsage2"> <xsl:copy-of select="peci:Usage_Type|peci:Address_Line_1|peci:Address_Line_3|peci:Address_Line_4|peci:City|peci:Postal_Code|peci:Country|peci:Country_Region"/> <peci:Usage> <xsl:copy-of select="$AddUsage1"/> </peci:Usage> </xsl:when> 首先,让我提醒您,获得及时回复的最佳方法是在提问时注意您已提供所有相关信息。 您需要包括: 输入数据(您的数据无效,因为它省略了 peci 命名空间前缀的声明;在我的示例中,我已将 peci 绑定到占位符值 not-supplied) 您现有的完整运行代码(您的不是完整的样式表) 参见 https://stackoverflow.com/help/minimal-reproducible-example 如果我理解正确的话,这是您问题的答案。 我知道您想要删除任何 peci:Address,如果它包含一个 peci:Usage/peci:Usage_Behavior_ID,其值不是这三个可接受值之一: COMMUNICATION_USAGE_BEHAVIOR_TENANTED-3-1 COMMUNICATION_USAGE_BEHAVIOR_TENANTED-3-16 COMMUNICATION_USAGE_BEHAVIOR_TENANTED-3-6 我的示例解决方案使用“身份模板”来复制文档,并定义另一个模板来匹配不可接受的 peci:Address 元素,该模板会覆盖这些元素的身份模板。 peci:Address匹配模板为空,因此匹配的结果是忽略该元素,因此不会将其复制到输出中。 请参阅 XSLT 2.0 规范中有关“身份转换”的部分,其中给出了复制文档并忽略特定 note 元素的示例。 https://www.w3.org/TR/xslt20/#d5e17568 <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:peci="not-supplied"> <xsl:output method="xml" indent="true"/> <xsl:template match="@*|node()"> <xsl:copy> <xsl:apply-templates select="@*|node()"/> </xsl:copy> </xsl:template> <!-- Match, and ignore, any Address which contains a Usage/Usage_Behaviour_ID for which it's not the case that the ID appears in the list of acceptable IDs --> <xsl:template match=" peci:Address[ peci:Usage/peci:Usage_Behavior_ID[ not ( . = ( 'COMMUNICATION_USAGE_BEHAVIOR_TENANTED-3-1', 'COMMUNICATION_USAGE_BEHAVIOR_TENANTED-3-16', 'COMMUNICATION_USAGE_BEHAVIOR_TENANTED-3-6' ) ) ] ] "/> </xsl:stylesheet> 顺便说一句,如果您想知道,布尔表达式 not ( . = ( 'COMMUNICATION_USAGE_BEHAVIOR_TENANTED-3-1', 'COMMUNICATION_USAGE_BEHAVIOR_TENANTED-3-16', 'COMMUNICATION_USAGE_BEHAVIOR_TENANTED-3-6' ) ) 不等于 . != ( 'COMMUNICATION_USAGE_BEHAVIOR_TENANTED-3-1', 'COMMUNICATION_USAGE_BEHAVIOR_TENANTED-3-16', 'COMMUNICATION_USAGE_BEHAVIOR_TENANTED-3-6' ) 在第一个表达式中,如果序列中的 any 项等于上下文项,则 = 运算符返回 true。 在第二个表达式中,如果序列中的 any 项与上下文项不同,则 != 运算符返回 true。 一般来说,not($A = $B)与$A != $B不同。有关详细信息,请参阅 XPath 规范中有关 “常规比较” 的部分。

回答 1 投票 0

XSLT 在表头中收集值

在这个xslt中,我尝试计算我做了多少。因为我需要知道我需要制作多少个。我创建了这个变量集但是...

回答 1 投票 0

当节点B跨越多个页面时,如何确保XSL-FO表(节点A)在下一页的顶部继续?

我正在使用 XSL-FO 生成 PDF,其中由 表示的节点 A 通常在单个页面内完成。同时,节点B常常跨越多个页面。当节点 B 延伸到...

回答 1 投票 0

XSLT for-each 离开主节点

看起来当我执行 xsl:for-each select="//MeetingPollingParts" 时,我脱离了数据并超出了 select="//MeetingPollingQuestion" 的范围。我需要做什么吗...

回答 1 投票 0

如果不同节点中的关键字段是公共的,如何连接不同节点中的 XML 字段?

我的源 xml 文件具有以下形式的元素: ABC 德里 ABC 我的源 xml 文件具有以下形式的元素: <Employees> <Employee> <Name>ABC</Name> <City>Delhi</Delhi> </Employee> <Employee> <Name>ABC</Name> <City>Mumbai</Delhi> </Employee> <Employee> <Name>KBC</Name> <City>Kolkata</Delhi> </Employee> </Employees> 我使用了以下 XSLT 代码 <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/> <xsl:template match="/root"> <Employees> <xsl:for-each-group select="row" group-starting-with="row[Name/text()]"> <Employee> <FIELD7> <xsl:value-of select="City" separator="|"/> </FIELD7> </Employee> </xsl:for-each-group> </Employees> </xsl:template> </xsl:stylesheet> 在这里,如果员工的姓名相同,那么 XSLT 会将城市与管道连接起来。我的预期输出。 <Employees> <Employee> <Name>ABC</Name> <City>Delhi|Mumbai</Delhi> </Employee> <Employee> <Name>KBC</Name> <City>Kolkata</Delhi> </Employee> </Employees> 您已将问题标记为 XSLT 1.0,但在尝试中您使用了 XSLT 2/3 for-each-group,因此假设您使用的是 XSLT 3 处理器,例如当前版本的 Saxon Java、Saxon JS 或 SaxonC 或 SaxonCS 或 .NET,您会需要这样的代码 <xsl:stylesheet version="3.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:mode on-no-match="shallow-copy"/> <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/> <xsl:template match="/Employees"> <xsl:copy> <xsl:for-each-group select="Employee" group-by="Name"> <xsl:copy> <xsl:apply-templates/> </xsl:copy> </xsl:for-each-group> </xsl:copy> </xsl:template> <xsl:template match="Employee/City"> <xsl:copy> <xsl:value-of select="current-group()/City" separator="|"/> </xsl:copy> </xsl:template> </xsl:stylesheet> 在线小提琴使用 Saxon 12 HE。

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.