我需要帮助使用 XLST 遍历一些 XML 并提取数据

I need help traversing some XML using XLST and extracting the data

我有一些 XML,需要使用 XLST 提取数据。 我需要通过名称、描述成对提取数据,并在 XLST 中输出它们各自的值。

所以..

txt_name,乔纳森·史密斯

txt_description,男人


txt_name,玛丽·史密斯

txt_description,女人


这里是 XML.

<?xml version="1.0" encoding="UTF-8"?>
<dfor:form-data xmlns:dfor="http://kana.com/dforms">
    <dfor:field>
        <dfor:name>eml_email</dfor:name>
        <dfor:value>email@email.com</dfor:value>
    </dfor:field>
    <dfor:field>
        <dfor:name>otom_children</dfor:name>
        <dfor:children>
            <dfor:child>
                <dfor:field>
                    <dfor:name>txt_name</dfor:name>
                    <dfor:value>Mary Smith</dfor:value>
                </dfor:field>
                <dfor:field>
                    <dfor:name>txt_description</dfor:name>
                    <dfor:value>Woman</dfor:value>
                </dfor:field>
            </dfor:child>
            <dfor:child>
                <dfor:field>
                    <dfor:name>txt_name</dfor:name>
                    <dfor:value>Jonathan Smith</dfor:value>
                </dfor:field>
                <dfor:field>
                    <dfor:name>txt_description</dfor:name>
                    <dfor:value>Man</dfor:value>
                </dfor:field>
            </dfor:child>
        </dfor:children>
    </dfor:field>
</dfor:form-data>

我试过使用“

尝试:

<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  xmlns:dfor="http://kana.com/dforms">

  <xsl:output method="text" omit-xml-declaration="yes" indent="no"/>

  <xsl:template match="/">
    <xsl:for-each select="//dfor:child"><!-- outer loop -->
      <xsl:for-each select="dfor:field"><!-- inner loop -->
        <xsl:value-of select="dfor:name"/>
        <xsl:text>, </xsl:text>
        <xsl:value-of select="dfor:value"/>
        <xsl:text><!-- output new line -->
</xsl:text>
      </xsl:for-each>
      <xsl:text><!-- output 1 extra new line after the inner loop -->
</xsl:text>    
    </xsl:for-each>
  </xsl:template>

</xsl:stylesheet>