我需要帮助使用 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>
我有一些 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>