我如何获得下一个xml标签的名称?
<SUBSCRIBER>
<Anumber>639093700012</Anumber>
<FirstCallDate>20090612124207</FirstCallDate>
<SetyCode>TNT</SetyCode>
<PARSETAG>parseind</PARSETAG>
<Status>ACT</Status>
<RoamIndicator>1</RoamIndicator>
<PreloadCode>P1.0</PreloadCode>
</SUBSCRIBER>
以下代码开始从标记PARSETAG解析并打印下一个xml标记值。我如何获得下一个xml标签名称?
例如,以下代码打印ACT,1,P1.0标记值,但我也需要相应的标记名称。
<xsl:template match="SUBSCRIBER/*" mode="RULE_DA_TEST">
<xsl:if test="preceding-sibling::PARSETAG">
<!-- some logic here -->
<xsl:variable name="tagname" select="following-sibling::node()[1]"/>
<xsl:variable name="tagvalue" select="????????????????"/>
<!-- some logic here -->
</xsl:if>
</xsl:template>
答案 0 :(得分:1)
您的测试仅选择与前一个兄弟姐妹有PARSETAG
的节点(不包括PARSETAG
)。因此,您的节点为Status
,RoamIndicator
和PreloadCode
。如果您需要来自这三个节点的数据,请不要使用following-sibling
来提取数据,否则您将排除Status
。当上下文节点为Status
时,表达式following-sibling:node()
将在 Status
之后选择节点,并且您将只获得RoamIndicator
和{{1结果。
因此,要获得PreloadCode
后应使用的所有兄弟节点的名称和值:
PARSETAG
答案 1 :(得分:0)
following-sibling::*/name()
为您提供一系列字符串,其中包含以下兄弟元素的名称。