使用xsl解析任意深度的xml

使用xsl解析任意深度的xml,xml,xslt,xml-parsing,Xml,Xslt,Xml Parsing,我正在尝试使用XSL文件解析XML文件 我的问题是,我的XML文件可以保存任意深度的路径f.x <document> <branch> <data>somedata</data> <children> <branch> <data>somedata</data> <ch

我正在尝试使用XSL文件解析XML文件

我的问题是,我的XML文件可以保存任意深度的路径f.x

<document>
    <branch>
        <data>somedata</data>
        <children>
            <branch>
                <data>somedata</data>
                <children>
                    ....
                </children>
            </branch>
         </children>
     </branch>
</document>

一些数据
一些数据
....
我不知道这些节点的深度,但我知道它们是如何命名的。如何提取每个节点f.x.的内容

我想保留节点的层次结构

谢谢

我找到了解决办法。不知道这是否是Martin og HashCoder的意思:

<xsl:template match="branch">
    <p><xsl:value-of select="branchcontent.list/branchtext/properties.list/p/@v"/></p>
        <xsl:apply-templates select="subbranches.list"/>
</xsl:template>


我对你的问题不是很清楚。。您正在尝试复制所有节点值吗

<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
        <xsl:output indent="yes"/>
        <xsl:strip-space elements="*"/>
    <xsl:template match="@* | node()">
      <xsl:copy>
        <xsl:apply-templates select="@* , node()"/>
      </xsl:copy>
    </xsl:template>
</xsl:stylesheet>

如果要展平层次结构,请使用

<xsl:template match="/">
  <xsl:apply-templates select="//data"/>
</xsl:template>

<xsl:template match="data">
  <xsl:value-of select="."/>
</xsl:template>
<xsl:template match="branch">
  <div>
   <xsl:apply-templates/>
  </div>
</xsl:template>

    <xsl:template match="data">
      <xsl:value-of select="."/>
    </xsl:template>

如果要遍历并保留层次结构,请使用

<xsl:template match="/">
  <xsl:apply-templates select="//data"/>
</xsl:template>

<xsl:template match="data">
  <xsl:value-of select="."/>
</xsl:template>
<xsl:template match="branch">
  <div>
   <xsl:apply-templates/>
  </div>
</xsl:template>

    <xsl:template match="data">
      <xsl:value-of select="."/>
    </xsl:template>


关于下面的答案:对于xml文件中的每个分支元素,是否返回数据标记的内容?这就是代码应该被读取的方式吗?您没有解释您想要哪种类型的结果(XML、HTML、纯文本)。假设第二种方法为任何
分支
元素创建一个HTML
div
结果元素,并使用匹配的模板处理子节点,这是一个用于创建文本节点的
数据
元素的模板,以及一个用于其他元素的内置模板,以跟上递归。我正在尝试提取数据元素的值,然后将其解析为html,它们将层次结构保存在bulletpoint列表中。