【发布时间】:2018-01-28 23:12:38
【问题描述】:
如何通过 XSLT 街道和门牌号分开?我需要使用 XSLT 将地址字符串拆分为两个节点。所以,例如,
<Customer>
<ShippingAddress>Test Street 32a-33b</ShippingAddress>
...
</Customer>
应该如下变换:
<Customer>
<Street>Test Street</Street>
<HouseNo>32a-33b</HouseNo>
</Customer>
我认为正确的做法是从字符串的第一个数字开始拆分。有人出主意吗?
【问题讨论】:
-
你可以使用 XSLT 2.0 吗?
-
你能保证 ShippingAddress 的格式吗(即数字总是在最后并且没有空格)?
-
是的,我可以使用 xslt 2.0,并且门牌号码将始终位于最后,但可能有空格,例如'Elmstreet 34 - 36' 应该在 'Elmstreet' 和 '34 - 36' 中拆分
-
使用
xsl:analyze-string和正则表达式([^0-9]*)([0-9].*)很容易,将这两个部分返回为regex-group(1)和regex-group(2),但我很难想象它在任何情况下都能给出令人满意的结果真实数据。 -
请阅读Under what circumstances may I add “urgent” or other similar phrases to my question, in order to obtain faster answers? - 总结是这不是解决志愿者的理想方式,并且可能会适得其反。请不要将此添加到您的问题中。