gpt4 book ai didi

java - XSLT 检查字符串是否在集合内

转载 作者:行者123 更新时间:2023-12-02 03:30:32 25 4
gpt4 key购买 nike

我正在尝试检查字符串是否包含在集合中。我有一个 Excel 工作表,我将其转换为 xml文件;示例:

左侧为 Excel 工作表,右侧为转换后的工作表 ( RowData.xml ):

ExcelXML

所以我有一个 xml文件中可能存在也可能不存在这些数字组。例如,来源xml可能看起来像这样:

源.xml:

<Data>
<Number>5556781234</Number>
<Number>5556781235</Number>
<Number>5556781236</Number>
</Data>

如您所见,它可以在任何地方停止。来源xml文件可能包含 RowData.xml 中列出的所有数字或者它可能只有 1 个或多个。所以我的问题是,我如何在我的 xslt 中检查这一点文件?

我想这样做:

<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<!-- This is the Excel sheet converted to an XML file -->
<xsl:param name="sheet-uri" select="'RowData.xml'"/>
<xsl:param name="sheet-doc" select="document($sheet-uri)"/>

<xsl:template match="Data">
<xsl:for-each select="Data/Number">
<xsl:variable name="continue" select="$sheet-doc//Sheet/Row[Number = current()]/Continue"/>

<xsl:if test="">
<!-- Check the Source.xml against the RowData.xml and
see if the set contains any "No"'s in it. -->

<!-- If it does then don't do the following -->

<Data2>
<Number><xsl:value-of select="Number"/></Number>
<Timestamp>125222</Timestamp>
</Data2>
</xsl:if>
</xsl:for-each>
</xsl:template>

基本上,在创建 <Data2> 之前元素,检查 Source.xml 中的数字并查看这些数字中是否有一个值为 No对于专栏 ContinueRowData.xml 。我不知道如何制作if上面的声明。我知道有一个contains()函数位于 xslt ;但是,我不知道如何在这里使用它。

这可能吗?如果有任何令人困惑的地方,请告诉我。提前致谢!

最佳答案

check the numbers in Source.xml and see if any of those numbers have a value of No for the column Continue in RowData.xml.

您可以在此处利用 XSLT 的“存在​​等于”运算符:

test="doc('source.xml')/Data/Number = 
$sheet-doc//Sheet/Row[Continue='No']/Number"

本质上,如果 A 和 B 是值的集合,那么如果 A 中的某个值等于 B 中的某个值,则 A = B 返回 true。

关于java - XSLT 检查字符串是否在集合内,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38152749/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com