gpt4 book ai didi

xml - 如何从字符串中过滤状态缩写

转载 作者:数据小太阳 更新时间:2023-10-29 02:42:37 25 4
gpt4 key购买 nike

我有 XML,其中/forms/form/@number 几乎可以是任何格式(字母、数字和单个空格的任意组合)。偶尔会出现相同形式的@number 值...但特定于州。发生这种情况时,最后 3 个字符将是一个空格,后跟州缩写。所以最后两个字符是州的缩写……如果它存在的话。我需要能够选择这些“相同”的表格进行处理。

XSLT 2.0 很好。我认为解决方案将涉及键或 2.0 分组方法,但我不知所措。注意:我仍然需要在同一个循环中迭代没有状态特定匹配的表单……只是我必须为多个状态的表单做一些特殊的事情。当然,我无法控制 XML。

<forms>
<!-- THESE 3 WOULD MATCH -->
<form number="ABC 12 45"/>
<form number="ABC 12 45 IL"/>
<form number="ABC 12 45 KY"/>
<!-- 2 OF 3 WOULD MATCH AS ZZ IS NOT A STATE -->
<form number="CGF 45"/>
<form number="CGF 45 ZZ"/>
<form number="CGF 45 IL"/>
<!-- THESE 3 WOULD MATCH -->
<form number="955EZ IL"/>
<form number="955EZ MN"/>
<form number="955EZ CA"/>
<!-- NO MATCHES -->
<form number="25 AB 4"/>
<form number="SR HL DR"/>
</forms>

最佳答案

只需使用:

<xsl:template match=
"form[substring(@number, string-length(@number) -2, 1)=' '
and
translate(substring(@number, string-length(@number)-1),
'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
) = ''
and
contains('|AL|AK|AZ|AR|...|WA|WI|WY|',
concat('|',substring(@number, string-length(@number)-1),'|')
)
=
''
]">

<!-- Needed processing here -->

</xsl:template>

XSLT 2.0 解决方案:

<xsl:template match=
"form[substring(@number, string-length(@number) -2, 1)=' '
and
substring(@number, string-length(@number)-1)
=
('AL','AK','AZ','AR',...,'WA','WI','WY')
]">

<!-- Needed processing here -->

</xsl:template>

关于xml - 如何从字符串中过滤状态缩写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5071454/

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