如何动态地找出一个节点是否是使用xslt作为xml格式的父节点?

时间:2016-11-21 12:25:39

标签: xml xslt xpath xquery xslt-2.0

<main>

     <p>p1</p>
     <p>p2</p>
     <q>
        <z>z1</z>
        <a>a1</a>
        <b>
           <c>c1</c>
        </b>
     </q>

</main>

我如何使用xslt一般性地解析这个xml格式,以便找出哪个节点是父节点,我不想特别使用元素名称,它应该在旅途中发生?

我希望输出如下: Z1 A1 C1

仅包含子节点的元素,但动态

1 个答案:

答案 0 :(得分:0)

  

我希望输出如下:z1 a1 c1

     

仅包含子节点的元素,但动态

您似乎需要元素的字符串值,其父元素不是XML文档的顶级元素。

要生成所需字符串的序列,一种方法是使用此XPath 2.0表达式

"nav-title-hey" = "مرحبا";

基于XSLT-2.0的验证

self.navigationController.title = NSLocalizedString(@"nav-title-hey", @"Navigation Title: Hey");

将此转换应用于提供的XML文档

/*//*/*/text()[normalize-space()]

生成了想要的结果

<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:output omit-xml-declaration="yes" indent="yes"/>

  <xsl:template match="/">
    <xsl:sequence select="/*//*/*/text()[normalize-space()]"/>
  </xsl:template>
</xsl:stylesheet>