XSLT 1.0基于DPART段条件提取DCOAD字段赋值变量问题
XSLT 1.0 实现需求的修改方案
原代码的问题在于没有先定位到角色为UU的DPART对应的地址值,同时取值时没有过滤DCOAD段中地址匹配的节点,导致无法精准获取目标数据。可以按照以下逻辑修改:
- 先提取
PARTN_ROLE为UU的DPART段的ADDRESS值存入变量 - 用该地址值过滤匹配DCOAD段,取出对应的NAME和STREET
完整的变量定义及输出代码如下:
<!-- 提取UU角色对应的地址值,存在多个UU段时加[1]取第一个即可 --> <xsl:variable name="targetAddr" select="/Z1E1P/Z1BP_ISAORDER/DPART[PARTN_ROLE='UU']/ADDRESS" /> <!-- 定义客户姓名变量 --> <xsl:variable name="Cust_Name" select="/Z1E1P/Z1BP_ISAORDER/DCOAD[ADDRESS = $targetAddr]/NAME" /> <!-- 定义客户街道变量 --> <xsl:variable name="Cust_Street" select="/Z1E1P/Z1BP_ISAORDER/DCOAD[ADDRESS = $targetAddr]/STREET" /> <!-- 输出要求格式的节点 --> <Cust_Name><xsl:value-of select="$Cust_Name" /></Cust_Name> <Cust_Street><xsl:value-of select="$Cust_Street" /></Cust_Street>
内容的提问来源于stack exchange,提问作者John
相关产品推荐
相关产品推荐

