【发布时间】:2012-06-14 09:07:28
【问题描述】:
给定一个节点,例如。
<SI elem1="TI" elem2="FN" elem3="4099450222" elem4="TM" elem5="4094110000" elem6="MT" elem7="SP" elem8="MC" elem9="DS" elem10="DA" elem11="16"/>
如果任何属性是“DA”,我需要我的输出是“DA”,或者如果任何属性是“BA”,我需要下一个属性的值(即如果 elem7="BA elem8="03" 我想要 "03 " 输出)
没有多重匹配的危险,所以如果一个属性是“BA”,就不会有“DA”属性,但是值可以出现在任何元素中
我已经查看了 attribute:: 标记,但我不确定这是否能满足我的需求。
非常感谢任何帮助
【问题讨论】:
-
嗯,依赖输入 XML 中的属性顺序通常是不可靠的。见stackoverflow.com/questions/2287861/…。无论如何,我不相信 XSL 检查前置/前处理节点的轴可以应用于属性。
-
属性名总是elem1、elem2等。有没有办法获取属性名然后替换末尾的数字字符?
-
要获取节点或属性的名称,请使用
name() -
@Jaloopa 可以使用 substring-after XPATH 方法来完成。看我的回答。