0
以下是示例XML:通过节点XSLT蟒蛇循环
<root>
<slide name="abc.xml" nav_info="foo" nav_lvl_1="foobar" nav_lvl_2="foobarz">
<title>a</title>
<Introduction>
<para>b</para>
</Introduction>
<Text>
<header>c</header>
<para>d</para>
<header>e</header>
<para>f</para>
<header>g</header>
<para>h</para>
</Text>
<Statement>
<para>i</para>
</Statement>
</slide>
</root>
我必须使用XSLT来获取每个节点的文字...我没有得到节点title
的文本的任何问题, statement
但是,当我尝试循环节点文本时,我只得到第一个header
和para
。为了更好地理解,我正在做什么!
<xsl:choose>
<xsl:when test="@nav_info='foo'">
<xsl:for-each select="Text">
<xsl:if test="header">
<xsl:value-of select="header">
</xsl:if
<xsl:if test="para">
<xsl:value-of select="para">
</xsl:if
</xsl:for-each>
</xsl:when>
</xsl:choose>
Thsi给中小企业的输出:
c
和d
预计输出...
c d e f g h
在order..Any建议请! 谢谢
谢谢霍尔曼先生..我同意上面的...我有一个扩展问题。如你所说,我需要通过孩子,但是,我必须理清输出,即在真正的执行我的代码我必须在转换过程中将头和段的值写入不同的节点。我必须一次检查一个条件..就像它是'文本/头'做些事情,或者如果它是'文本/段'做一些事情..我如何在xslt中实现这个? – Sangamesh
然后你不会使用' ',而是可以用''替换'并且为了处理每一个的存在并在输出中构建你需要的节点,有''和''。 –
工作非常感谢你! – Sangamesh