XSLT 解析工作错误

XSLT parsing works wrong

我有 RSS 提要,我的任务是将该提要解析为其他 XML 模式。我正在使用 XSLT 解析器。这是我的 rss 提要和解析器:

<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:wfw="http://wellformedweb.org/CommentAPI/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
xmlns:georss="http://www.georss.org/georss"
xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"
>
    <channel>
        <title>Vita Brevis</title>
        <atom:link href="https://vitabrevis.americanancestors.org/feed/" rel="self" type="application/rss+xml"/>
        <link>https://vitabrevis.americanancestors.org</link>
        <description>A resource for family history from AmericanAncestors.org</description>
        <lastBuildDate>Mon, 25 Oct 2021 16:23:50 +0000</lastBuildDate>
        <language>en-US</language>
        <sy:updatePeriod>
            hourly
        </sy:updatePeriod>
        <sy:updateFrequency>
            1
        </sy:updateFrequency>
        <generator>https://wordpress.org/?v=5.8.1</generator>
        <site xmlns="com-wordpress:feed-additions:1">62574325</site>
        <item>
            <title>ICYMI: Of Plimoth Plantation</title>
        </item>
    </channel>
</rss>

和 XSLT

    <?xml version="1.0" encoding="UTF-8"?>
      <xsl:stylesheet
        xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
        xmlns:content="http://purl.org/rss/1.0/modules/content/"
        version="2.0"
        xpath-default-namespace="http://purl.org/rss/1.0/modules/content/"
        exclude-result-prefixes="content">

    <xsl:output method="xml" doctype-public="XSLT-compat" omit-xml-declaration="yes" 
  encoding="UTF-8" indent="yes"/>


    <xsl:template match="/">
        <xsl:element name="update">
            <xsl:apply-templates select="rss/channel/item"/>
        </xsl:element>
    </xsl:template>

    <xsl:template match="rss/channel/item">
        <xsl:element name="add">
            <xsl:element name="doc">                   
                <xsl:element name="field">
                    <xsl:attribute name="name">tcngrams_title</xsl:attribute>
                    <xsl:value-of select="title"/>
                </xsl:element>           
            </xsl:element>
        </xsl:element>
    </xsl:template>
    </xsl:stylesheet>

想要的结果应该是

<update>
    <add>
      <doc>
        <field name="tcngrams_title">ICYMI: Of Plimoth Plantation</field>
      </doc>
    </add>
</update>

但我只得到 <update />

我正在使用 http://xsltransform.net/ 变压器。 我在这里做错了什么?

因为你有 xpath-default-namespace="http://purl.org/rss/1.0/modules/content/".

您的 RSS 元素未绑定到任何名称空间,它们位于“无名称空间”中。

但是由于您添加了默认的 XPath 命名空间属性,它正在查找绑定到该命名空间的元素并找到 none。