XSLT遍历XML时如何仅获取指定父节点下的dfor:child元素
XPath调整方案
正确代码
替换原有<xsl:for-each select="//dfor:child">为以下内容即可:
<xsl:for-each select="//dfor:field[dfor:name='otom_businessPartner']/dfor:children/dfor:child">
逻辑说明
- 先通过筛选条件
[dfor:name='otom_businessPartner']定位到名称为业务伙伴的上层dfor:field节点 - 再向下层级匹配该节点下的
dfor:children和dfor:child,仅会获取业务伙伴分组下的2个child节点,不会关联到费用分组的节点
原有尝试写法的问题
- 缺少命名空间前缀:所有自定义节点都属于
dfor命名空间,不能直接写children,必须补全为dfor:children - 筛选条件位置错误:
otom_businessPartner是上层dfor:field的子节点值,不属于dfor:child的属性,不能放在dfor:child的筛选规则中 - 拼写错误:尝试的写法中多写了末尾的
s,拼写为otom_businessPartners,和XML中实际的otom_businessPartner不匹配
内容的提问来源于stack exchange,提问作者Jonathan Fleury-Smith
相关产品推荐
相关产品推荐

