xslt-grouping 相关问题

分组特定于XSLT的机制。应始终使用xslt-1.0,xslt-2.0或xslt-3.0标记进行补充,以指示使用的版本。

XSLT 为输入 XML 中的每个增量分隔符位置分配变量

对于输入 XML: +本地_职能+小组_职能+小组_所有者+小组_经理+小组_领导+临时_服务 对于输入 XML: <EmpJob> <EmpJob> <ConcatDepartment>+Local_Functions+Group_Functions+Group_Owners+Group_Managers+Group_Leads+Interim_Services</ConcatDepartment> </EmpJob> </EmpJob> 我希望将值分配给 XSLT 中的变量,如下所示。分隔符是 +,它应该在将值分配给 XSLT 中的每个部门变量时递增,以便我可以使用它们获得以下预期输出.. <xsl:value-of select="$departments[1]" /> should return the string "" <xsl:value-of select="$departments[2]" /> should return the string "Local_Functions" <xsl:value-of select="$departments[3]" /> should return the string "Local_Functions/Group_Functions" <xsl:value-of select="$departments[4]" /> should return the string "Local_Functions/Group_Functions/Group_Owners" <xsl:value-of select="$departments[5]" /> should return the string "Local_Functions/Group_Functions/Group_Owners/Group_Managers" <xsl:value-of select="$departments[6]" /> should return the string "Local_Functions/Group_Functions/Group_Owners/Group_Managers/Group_Leads" <xsl:value-of select="$departments[7]" /> should return the string "Local_Functions/Group_Functions/Group_Owners/Group_Managers/Group_Leads/Interim_Services" <xsl:value-of select="$departments[8]" /> should return the string "" <xsl:value-of select="$departments[9]" /> should return the string "" <xsl:value-of select="$departments[10]" /> should return the string "" 我尝试过 <xsl:variable name="departments" select="tokenize(/EmpJob/EmpJob/ConcatDepartment, '\+')"/> <xsl:value-of select="$departments[1]" /> 返回字符串“” <xsl:value-of select="$departments[2]" /> 返回字符串“Local_Functions” <xsl:value-of select="$departments[3]" /> 返回字符串“Group_Functions” <xsl:value-of select="$departments[4]" /> 返回字符串“Group_Owners”等等...XSLT 的任何帮助都将非常有帮助 要获得您想要的行为,请使用如下表达式: <xsl:value-of select="$departments[position() le 4]" separator="/"/> 返回字符串: /Local_Functions/Group_Functions/Group_Owners 注意表达式: <xsl:value-of select="$departments[position() le 10]" separator="/"/> 将返回: /Local_Functions/Group_Functions/Group_Owners/Group_Managers/Group_Leads/Interim_Services 而不是空字符串。我不确定应该使用什么逻辑来产生您显示的确切结果。

回答 1 投票 0

XSLT 为输入 XML 中的每个分隔符位置分配变量

在我的 XSLT 中,我需要将值分配给名为 FODepartment_LX 的变量,其中 X 表示从最左侧分隔符开始的分隔符 (+) 的位置,最大位置为 10。如果...

回答 1 投票 0

XSLT 2.0 转换:按值和元素对节点进行分组

尝试转换 xml 并按 xslt 2.0 中的值和元素对节点进行分组 我有一个输入 xml 如下: ...

回答 1 投票 0

XSLT 3.0 转型

尝试转换 xml 并按 xslt 3.0 中的值和元素对节点进行分组 嘿伙计们,我有一个输入 xml,如下所示 尝试在 xslt 3.0 中转换 xml 并按值和元素对节点进行分组 嘿伙计们,我有一个输入 xml 如下 <?xml version='1.0' encoding='UTF-8'?> <Applications> <Application> <applicationId>280</applicationId> <cust_IDCheckIDCollation> <Option> <id>197249</id> </Option> </cust_IDCheckIDCollation> <cust_overallduedilligencestatus> <Option> <id>197276</id> </Option> </cust_overallduedilligencestatus> </Application> <Application> <applicationId>292</applicationId> <cust_IDCheckIDCollation> <Option> <id>197249</id> </Option> </cust_IDCheckIDCollation> <cust_overallduedilligencestatus> <Option> <id>197276</id> </Option> </cust_overallduedilligencestatus> </Application> <Application> <applicationId>280</applicationId> <cust_OnlineReferenceCheck> <Option> <id>197249</id> </Option> </cust_OnlineReferenceCheck> <cust_overallduedilligencestatus> <Option> <id>197276</id> </Option> </cust_overallduedilligencestatus> </Application> <Application> <applicationId>292</applicationId> <cust_OnlineReferenceCheck> <Option> <id>197249</id> </Option> </cust_OnlineReferenceCheck> <cust_overallduedilligencestatus> <Option> <id>197276</id> </Option> </cust_overallduedilligencestatus> </Application> <Application> <applicationId>280</applicationId> <cust_AustralianWorkRights> <Option> <id>197250</id> </Option> </cust_AustralianWorkRights> <cust_overallduedilligencestatus> <Option> <id>197276</id> </Option> </cust_overallduedilligencestatus> </Application> <Application> <applicationId>292</applicationId> <cust_AustralianWorkRights> <Option> <id>197250</id> </Option> </cust_AustralianWorkRights> <cust_overallduedilligencestatus> <Option> <id>197276</id> </Option> </cust_overallduedilligencestatus> </Application> <Application> <applicationId>280</applicationId> <cust_NationalPoliceCheck> <Option> <id>197249</id> </Option> </cust_NationalPoliceCheck> <cust_overallduedilligencestatus> <Option> <id>197276</id> </Option> </cust_overallduedilligencestatus> </Application> <Application> <applicationId>292</applicationId> <cust_NationalPoliceCheck> <Option> <id>197249</id> </Option> </cust_NationalPoliceCheck> <cust_overallduedilligencestatus> <Option> <id>197276</id> </Option> </cust_overallduedilligencestatus> </Application> </Applications> 我需要按 applicationId 将其分组,然后按元素名称对其进行子分组以删除重复元素。 预期产出 <Applications> <Application> <applicationId>280</applicationId> <cust_IDCheckIDCollation> <Option> <id>197249</id> </Option> </cust_IDCheckIDCollation> <cust_overallduedilligencestatus> <Option> <id>197276</id> </Option> </cust_overallduedilligencestatus> <cust_OnlineReferenceCheck> <Option> <id>197249</id> </Option> </cust_OnlineReferenceCheck> <cust_AustralianWorkRights> <Option> <id>197250</id> </Option> </cust_AustralianWorkRights> <cust_NationalPoliceCheck> <Option> <id>197249</id> </Option> </cust_NationalPoliceCheck> </Application> <Application> <applicationId>292</applicationId> <cust_IDCheckIDCollation> <Option> <id>197249</id> </Option> </cust_IDCheckIDCollation> <cust_overallduedilligencestatus> <Option> <id>197276</id> </Option> </cust_overallduedilligencestatus> <cust_OnlineReferenceCheck> <Option> <id>197249</id> </Option> </cust_OnlineReferenceCheck> <cust_AustralianWorkRights> <Option> <id>197250</id> </Option> </cust_AustralianWorkRights> <cust_NationalPoliceCheck> <Option> <id>197249</id> </Option> </cust_NationalPoliceCheck> </Application> <Applications> 在 xslt 3.0 中是否有更简单的方法来做到这一点。 我在 xslt 2.0 中编写了以下内容,但它没有返回预期的结果。 <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/> <xsl:strip-space elements="*"/> <xsl:template match="/Applications"> <xsl:copy> <xsl:for-each-group select="Application" group-by="applicationId"> <xsl:copy> <xsl:for-each-group select="current-group()/*" group-by="name()"> <xsl:element name="{current-grouping-key()}"> <xsl:value-of select="(current-group())[1]"/> </xsl:element> </xsl:for-each-group> </xsl:copy> </xsl:for-each-group> </xsl:copy> </xsl:template> </xsl:stylesheet>``` 我想你想做: <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="xml" indent="yes"/> <xsl:template match="/Applications"> <xsl:copy> <xsl:for-each-group select="Application" group-by="applicationId"> <xsl:copy> <xsl:copy-of select="applicationId"/> <xsl:for-each-group select="current-group()/(* except applicationId)" group-by="name()"> <xsl:copy-of select="current-group()[1]"/> </xsl:for-each-group> </xsl:copy> </xsl:for-each-group> </xsl:copy> </xsl:template> </xsl:stylesheet>

回答 1 投票 0

XSLT 从 XML 复制依赖数据

我面临着从 xml 进行 xslt 转换的问题。 xml:节点“”在xml中重复12次,并提取依赖的业务对象

回答 1 投票 0

2.0 版本的 XSLT 分组

想知道如何在 XSLT 中创建多个分组。以下 XML 应按 memberID、存款日期和存款类型分组。每个成员的总金额应为

回答 1 投票 0

XSLT 多重分组

想知道如何在 XSLT 中创建多个分组。以下 XML 应按 memberID、存款日期和存款类型分组。每个成员的总金额应为

回答 1 投票 0

需要帮助使用 xslt 列出数组中的值

需要帮助使用 xslt 列出数组中的值。目前,它们显示为一行一行,需要值才能在数组中显示它们。 附件是源 xml 和 xslt 尝试过但不确定...

回答 1 投票 0

仅将系列中的某些项目分组章节标题

我有一个 XML 文档,其中包含一系列段落: 章节标题 ... 我有一个包含一系列段落的 XML 文档: <section> <title>Section title</title> <p style="Body">...</p> <p style="Body">...</p> <p style="Note">...</p> <p style="Body">...</p> <p style="Body">...</p> <p style="Warning">...</p> <p style="Warning">...</p> <p style="Warning">...</p> <p style="Body">...</p> <p style="Note">...</p> <p style="Warning">...</p> <p style="Body">...</p> </section> 我想将 3 个相邻的警告段落分组(这样我就可以将格式应用于整个组,例如将它们放在 div 内,这样我就可以在它们周围放置边框)。必须保留元素的顺序。 <section> <title>Section title</title> <p style="Body">...</p> <p style="Body">...</p> <p style="Note">...</p> <p style="Body">...</p> <p style="Body">...</p> <div> <p style="Warning">...</p> <p style="Warning">...</p> <p style="Warning">...</p> </div> <p style="Body">...</p> <p style="Note">...</p> <p style="Warning">...</p> <p style="Body">...</p> </section> 我在使用 for-each-group 指令时遇到问题: <xsl:for-each-group select="*" group-adjacent="@stylename"> (wrap in div here) 这给了我一个错误,因为标题元素没有 @stylename 属性。 我不能这样做 for-each-group select="p" 因为这样标题元素根本就没有被处理。 如何处理该部分中的所有元素,但仅按段落的 @stylename 进行分组? 您遇到什么错误?如果您只想将 p 分组到 style="warning" 中,为什么不将其放在 group-adjacent 中? 示例: <xsl:stylesheet version="3.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" expand-text="yes"> <xsl:output indent="yes"/> <xsl:strip-space elements="*"/> <xsl:mode on-no-match="shallow-copy"/> <xsl:template match="section"> <xsl:copy> <xsl:apply-templates select="@*"/> <xsl:for-each-group select="*" group-adjacent="@style='Warning'"> <xsl:choose> <xsl:when test="@style='Warning' and count(current-group()) > 1"> <div> <xsl:apply-templates select="current-group()"/> </div> </xsl:when> <xsl:otherwise> <xsl:apply-templates select="current-group()"/> </xsl:otherwise> </xsl:choose> </xsl:for-each-group> </xsl:copy> </xsl:template> </xsl:stylesheet>

回答 1 投票 0

使用 XSLT 合并/连接共享属性值的相邻标签,而不会丢失子标签

我有 XHTML 内容,其中存在具有相同 href 值的相邻锚标记,需要合并。我一直在尝试找出一种使用 XSL 模板执行此操作的方法,但遇到了

回答 1 投票 0

如何从 XML 有效负载中读取特定字段,该有效负载再次出现在主 XML 有效负载的字段中

需要帮助来读取字段之一内的 XML 有效负载。 请求有效负载: 需要帮助来读取字段之一内的 XML 有效负载。 请求负载: <?xml version="1.0" encoding="UTF-8"?> <Code xmlns:ns0="http://example.com"> <Header> <Field1>111</Field1> <Field2>text</Field2> </Header> <Trailer> &lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt; <Field4>Name</Field4> <Field5>EmployeeDetails</Field5> <Field6>Age</Field6> <Field7>Location</Field7> </Trailer> </Code> 上面是请求 XML 负载,其中有一个名为 <Trailer> 的字段 我们再次获得 XML 有效负载。我们只需要获取 从 <Trailer> 字段中的 XML 负载中选择的字段 并生成以下输出。 预期输出有效负载: <?xml version="1.0" encoding="UTF-8"?> <Code xmlns:ns0=http://example.com> <Header> <Field1>111</Field1> <Field2>text</Field2> </Header> <Field5>EmployeeDetails</Field5> <Field6>Age</Field6> <Field7>Location</Field7> </Field5> </Code> 我尝试使用下面的 XSLT,但我不幸从 <Trailer> 字段中获取所需字段 XSLT 代码: <?xml version='1.0'?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/> <xsl:template match="/"> <Code> <xsl:copy-of select="//Header" /> <xsl:value-of select="//Trailer" disable-output-escaping="yes"/> </Code> </xsl:template> </xsl:stylesheet> 这是一种方法。 <?xml version='1.0'?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/> <!-- Identity template. --> <xsl:template match="node()|@*"> <xsl:copy> <xsl:apply-templates select="node()|@*"/> </xsl:copy> </xsl:template> <xsl:template match="Trailer"> <!-- Do not output the Trailer node or comments. Only output its child nodes. --> <xsl:apply-templates select="*"/> </xsl:template> <!-- Suppress Field4 --> <xsl:template match="Field4"/> </xsl:stylesheet> 问题不完全清楚。可以使用以下方法产生预期结果: <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="xml" indent="yes"/> <xsl:strip-space elements="*"/> <xsl:template match="@*|node()"> <xsl:copy> <xsl:apply-templates select="@*|node()"/> </xsl:copy> </xsl:template> <xsl:template match="Trailer"> <xsl:apply-templates select="Field5|Field6|Field7"/> </xsl:template> </xsl:stylesheet>

回答 2 投票 0

带有逗号分隔列表的节点。获取不同的值并创建新节点

我需要创建一个 xml 输出,将所有 wd:External_Value_Data/wd:Text 字段与每个不同的内部值分组。 ...

回答 1 投票 0

如果来自另一个节点的规则适用,则添加位置编号,但按照当前节点的顺序

输入: B缺乏 输入: <ROOT> <TEMPLATE style="test"> <ATTRIBUTE name="Color"><VALUE><UNIT>B</UNIT><UNIT>lack</UNIT></VALUE></ATTRIBUTE> </TEMPLATE> <TEMPLATE style="test"> <ATTRIBUTE name="Something"><VALUE>1235</VALUE></ATTRIBUTE> <ATTRIBUTE name="Name"><VALUE><UNIT>Hello</UNIT></VALUE></ATTRIBUTE> <ATTRIBUTE name="Height"><VALUE>12</VALUE></ATTRIBUTE> </TEMPLATE> <TEMPLATE style="something-else"> <ATTRIBUTE name="Test"><VALUE>Hey</VALUE></ATTRIBUTE> </TEMPLATE> <TEMPLATE style="footnotes"> <ATTRIBUTE name="FOOTNOTE_Test"><VALUE>not-relevant</VALUE></ATTRIBUTE> <ATTRIBUTE name="FOOTNOTE_Name"><VALUE>whatever</VALUE></ATTRIBUTE> <ATTRIBUTE name="FOOTNOTE_Color"><VALUE>Some value</VALUE></ATTRIBUTE> </TEMPLATE> <ROOT> 所需输出: <ROOT> <TEMPLATE style="test"> <ATTRIBUTE name="Color"><VALUE><UNIT>B</UNIT><UNIT>lack</UNIT> *1</VALUE></ATTRIBUTE> </TEMPLATE> <TEMPLATE style="test"> <ATTRIBUTE name="Something"><VALUE>1235</VALUE></ATTRIBUTE> <ATTRIBUTE name="Name"><VALUE><UNIT>Hello</UNIT> *2</VALUE></ATTRIBUTE> <ATTRIBUTE name="Height"><VALUE>12</VALUE></ATTRIBUTE> </TEMPLATE> <TEMPLATE style="something-else"> <ATTRIBUTE name="Test"><VALUE>Hey</VALUE></ATTRIBUTE> </TEMPLATE> <TEMPLATE style="footnotes"> <ATTRIBUTE name="FOOTNOTE_Test"><VALUE>not-relevant</VALUE></ATTRIBUTE> <ATTRIBUTE name="FOOTNOTE_Name"><VALUE>whatever</VALUE></ATTRIBUTE> <ATTRIBUTE name="FOOTNOTE_Color"><VALUE>Some value</VALUE></ATTRIBUTE> </TEMPLATE> <ROOT> 在我的样式为“test”的模板中,有些属性的名称+前缀“FOOTNOTE_”可以与模板“footnotes”中的属性名称匹配。如果名称匹配,则应将 " * {position}" 添加到属性值中。该位置计算已设置的脚注数量,但顺序基于测试样式属性而不是脚注。 我已经尝试过各种分组尝试和 for-each 循环,但它们从未达到预期的结果。 我正在使用 XSLT 2.0 我可能会分两步完成 - 说这样的话: XSLT 2.0 <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/> <xsl:key name="fn" match="TEMPLATE[@style='footnotes']/ATTRIBUTE" use="substring-after(@name, 'FOOTNOTE_')" /> <xsl:template match="/"> <xsl:variable name="temp"> <xsl:apply-templates mode="temp"/> </xsl:variable> <xsl:apply-templates select="$temp/ROOT"/> </xsl:template> <!-- identity transform --> <xsl:template match="@*|node()" mode="#all"> <xsl:copy> <xsl:apply-templates select="@*|node()" mode="#current"/> </xsl:copy> </xsl:template> <xsl:template match="TEMPLATE[@style='test']/ATTRIBUTE[key('fn', @name)]/VALUE" mode="temp"> <xsl:copy> <xsl:apply-templates/> <NUMBER/> </xsl:copy> </xsl:template> <xsl:template match="NUMBER"> <xsl:text> *</xsl:text> <xsl:number count="NUMBER" level="any"/> </xsl:template> </xsl:stylesheet> 请注意,结果是混合内容的 XML,这是您通常想要避免的。 试试这个: <?xml version="1.0"?> <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="xml" version="1.0" encoding="utf-8" indent="yes"/> <xsl:key name="footnote" match="TEMPLATE[@style='footnotes']/ATTRIBUTE" use="substring-after(@name,'FOOTNOTE_')"/> <xsl:template match="@* | node()"> <xsl:copy> <xsl:apply-templates select="@* | node()"/> </xsl:copy> </xsl:template> <xsl:template match="TEMPLATE[@style='test']/ATTRIBUTE/VALUE"> <xsl:variable name="name" select="parent::*/@name"/> <xsl:copy> <xsl:apply-templates select="@* | node()"/> <xsl:variable name="footnode" as="element()?" select="key('footnote',$name)"/> <xsl:if test="$footnode"> <xsl:value-of select="concat(' *',(count(parent::*/preceding-sibling::*) + 1))"/> </xsl:if> </xsl:copy> </xsl:template> </xsl:stylesheet>

回答 2 投票 0

嵌套/多级分组xslt

我有下面的xml,我需要首先对请求者进行分组,然后对于每个组,我需要根据项目是否存在进行另一个分组。 蒂姆&...

回答 2 投票 0

XSLT 可同时分组并删除重复项

下面是我的输入 XML。我想根据用户名对 XML 下面进行分组,并删除 HierarchyLocation 中的任何重复项 下面是我的输入 XML ...

回答 2 投票 0

比较数组中的元素值并获取父元素中的最大值元素

我正在尝试在 1.0 中创建一个 XSLT。请在下面找到一个示例 xml。要求是从所有 3 个字段中获取最大的 value1 字段并显示其中的标签。 请求 XML: 我正在尝试在 1.0 中创建一个 XSLT。请在下面找到一个示例 xml。要求是从所有 3 个字段中获取最大的 value1 字段并显示其中的标签。 请求XML: <?xml version="1.0" encoding="UTF-8"?> <GetTestValues xmlns="http://www.test.com/GetTestValues"> <TestSample> <Test> <value1>10000</value1> <value2>2016-01-28</value2> <value3>2017-12-10T01:36:12.403+00:00</value3> <value4>US</value4> <value5>true</value5> </Test> <Test> <value1>30000</value1> <value2>2019-01-28</value2> <value3>2019-01-28T18:04:13.763+00:00</value3> <value4>Canada</value4> <value5>false</value5> </Test> <Test> <value1>50000</value1> <value2>2019-01-28</value2> <value3>2019-01-28T18:04:13.763+00:00</value3> <value4>Canada</value4> <value5>false</value5> </Test> </TestSample> </GetTestValues> 改造后的预期反应: 请求XML: <?xml version="1.0" encoding="UTF-8"?> <GetTestValues xmlns="http://www.test.com/GetTestValues"> <TestSample> <Test> <value1>50000</value1> <value2>2019-01-28</value2> <value3>2019-01-28T18:04:13.763+00:00</value3> <value4>Canada</value4> <value5>false</value5> </Test> </TestSample> </GetTestValues> 我尝试放置 foreach,它显示了所有内容。不确定如何比较才能获得最大的价值。 <xsl:for-each select="/ns0:GetTestValues/ns0:TestSample/ns0:Test"> <ns0:value1> <xsl:value-of select="ns0:value1"/> </ns0:value1> <ns0:value2> <xsl:value-of select="ns0:value2"/> </ns0:value2> <ns0:value3> <xsl:value-of select="ns0:value3"/> </ns0:value3> <ns0:value4> <xsl:value-of select="ns0:value4"/> </ns0:value4> <ns0:value5> <xsl:value-of select="ns0:value5"/> </ns0:value5> </xsl:for-each> 在此样式表中,我遍历Test 元素集,按其value1 子元素的降序排列(以便第一个Test 元素具有最高的value1)。在 for-each 内部,我检查迭代的当前位置,如果它是 1 ,那么我复制当前的 Test 元素;其他Test元素被忽略。 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" xmlns:test="http://www.test.com/GetTestValues"> <xsl:output method="xml" indent="yes" /> <!-- identity template --> <xsl:template match="@*|node()" name="identity"> <xsl:copy> <xsl:apply-templates select="@*|node()" /> </xsl:copy> </xsl:template> <!-- Select only the Test child whose value1 is greatest --> <xsl:template match="test:TestSample"> <xsl:copy> <!-- iterate over the test child elements, in descending order of value1 --> <xsl:for-each select="test:Test"> <xsl:sort select="test:value1" order="descending"/> <!-- copy the test element if it's the first (has the highest value1) --> <xsl:if test="position()=1"> <xsl:copy-of select="."/> </xsl:if> </xsl:for-each> </xsl:copy> </xsl:template> </xsl:stylesheet>

回答 1 投票 0

比较文件与键/ ID节点,如果差异在兄弟节点中则生成输出

我想比较 XML 节点(Key/ID 节点),他们看看他们的兄弟节点是否有任何不同的值,然后在输出中获取。 合并两个 XML 文件的输入 XML 我想比较 XML 节点(Key/ID 节点),他们看看他们的兄弟节点是否有任何不同的值,然后在输出中获取。 合并两个 XML 文件的输入 XML <?xml version="1.0" encoding="utf-8"?> <aggregatedData> **<wd:Report_Data xmlns:wd="urn:report"> <wd:test> <wd:CID>0011</wd:CID> <wd:name>Test10</wd:name> </wd:test> <wd:test> <wd:CID>20012</wd:CID> <wd:name>Test12</wd:name> </wd:test> <wd:test> <wd:CID>0014</wd:CID> <wd:name>Test14</wd:name> </wd:test> </wd:Report_Data>** * <File xmlns="urn:ExternalSource"> <Root1> <CID>0011</CID> <curre>INR</curre> <name>Test1200</name> </Root1> <Root1> <CID>0000</CID> <curre>cnd</curre> <name>Test00</name> </Root1> <Root1> <CID>20012</CID> <curre>INR</curre> <name>Test12</name> </Root1> <Root1> <CID>0010</CID> <curre>INR</curre> <name>why10</name> </Root1> </File>* </aggregatedData> 现在在上面的输入文件中,如果比较节点只有“0011”和“20012”是常见的,但兄弟只在“0011”中不同。 对于 20012(File/Root1/CID 和 wd:Report_Data/wd:test/wd:CID),两个地方的子节点值相同。它不应该被采摘。 对于 0011(File/Root1/CID 和 wd:Report_Data/wd:test/wd:CID),subling 节点值在两个地方都不同,因此下面是输出。 <?xml version="1.0" encoding="utf-8"?> <FinalFile> <Root1> <CID>0011</CID> <curre>INR</curre> <name>Test1200</name> </Root1> <FinalFile> 尝试使用 XSLT2.0 和 30 使用 xsl:accumulator 但没有运气。 请任何人在这里帮助我。谢谢!

回答 0 投票 0

按元素和值分组 XSLT

我是XSLT的新手,我被一个问题卡住了。我已经做了一些搜索,我读到了关于Muenchian分组,但我不知道如何在这个prorblem中使用它。我试图在XSLT中写代码来读取每 ...

回答 1 投票 0

基于2个XMLs创建XML,并使用XSLT2.0在两个文件中查找值。

我正试图在2个XML的基础上生成一个XML。我正在轮询一个DB,返回人们的详细信息(在查询中可以有n个数量的人返回)。最终的XML应该有准确的数量......

回答 1 投票 0

使用XSLT删除第二个元素的重复节点。

我对xslt没有太多的知识。我试图从我的输入xml中删除一些重复的节点,但节点不完全重复。PremiseId值是重复的,但纬度,经度,...。

回答 1 投票 1

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