2011-04-07 63 views
1

我有一个问题,'/' 我们有一个字段,其中包含多个值,这些值将用斜线'/'分隔。 现在我不知道如何解决它自己包含'/'的值。 例如。我有一个问题'/'xslt

<xsd:Value> Tiger/Lion/Deer</xsd:Value> ----这是预期的,当我们使用'/'标记它时,我们可以像虎,狮子和鹿那样获得价值。

但是如果泰格价值变成'Ti/ger'会怎么样? 如何在xslt中转义这个斜杠字符?

回答

1

在属性或文本值,斜杠只是一个普通的常规角色,也不需要逃避,就像

//city/zoo[@name='Ti/ger'] 

在元素和属性名,slashes are not allowed

+0

<的xsl:for-每个选择= “$ VALUE1”> \t \t \t \t \t \t \t的 的 这里值来为 '虎/狮子/鹿' 现在如果值是像“的Ti/ger /狮子/鹿',然后有4分裂,而不是3(预计) – user696172 2011-04-07 06:27:35

+0

@ user696172看起来像那么你正在寻找'tokenize($ value,'/')'。 – phihag 2011-04-07 17:38:26

1

这不是一个XML/XSLT问题。分隔符(分隔符)不能出现在它应该分隔的值中。当构造该值时,您必须以某种方式越过分隔符,并且在提取该值时避开它。将这与markuop字符'<','>'等在XML中作为字符数据出现时必须转义的方式比较,或者当特殊字符作为URL的一部分时必须放弃(编码)。

但是,考虑到您的示例,分隔符可能不仅仅是SLASH,而是SPACE SLASH SPACE。

+0

大家好,请帮助我们。@ Per Norman能否详细说明你的建议(在markupop字符'<', '>'等字符数据以XML格式显示时必须如何转义以及特殊字符必须如何当它们是URL的一部分时,它们被隐藏(编码)),因为分隔符可以是任何东西斜线或SPACE SLASH SPACE。 – user696172 2011-04-08 11:51:26