Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用xsltproc从XML提要中提取播客URL?_Xslt_Rss - Fatal编程技术网

如何使用xsltproc从XML提要中提取播客URL?

如何使用xsltproc从XML提要中提取播客URL?,xslt,rss,Xslt,Rss,我想使用xsltproc或我可以在Bash中使用的任何其他工具从播客提要中提取URL。这里有以下两种类型的XML提要 A型 B型 我有下面的样式表,它从类型B返回URL,而不是从类型A返回URL。我甚至可以将这两个样式表混合在一个样式表中吗 <?xml version="1.0"?> <stylesheet version="1.0" xmlns="http://www.w3.org/1999/XSL/Transform"> <output method="

我想使用xsltproc或我可以在Bash中使用的任何其他工具从播客提要中提取URL。这里有以下两种类型的XML提要

A型

B型

我有下面的样式表,它从类型B返回URL,而不是从类型A返回URL。我甚至可以将这两个样式表混合在一个样式表中吗

<?xml version="1.0"?>
<stylesheet version="1.0" xmlns="http://www.w3.org/1999/XSL/Transform">
    <output method="text"/>
    <template match="/">
        <for-each select = "rss/channel/item/enclosure">
            <value-of select="@url"/><text>&#10;</text>
        </for-each>
        <for-each select = "rss/channel/item/media">
            <value-of select="@url"/><text>&#10;</text>
        </for-each>
    </template>
</stylesheet>
在类型A XML中,有一个名称空间与以别名作为媒体的节点相关联。名称空间不包括在样式表中。它需要包含在样式表中,以便正确访问与名称空间关联的元素

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    xmlns:media="http://search.yahoo.com/mrss/"
    exclude-result-prefixes="media">
<?xml version="1.0"?>
<stylesheet version="1.0" xmlns="http://www.w3.org/1999/XSL/Transform">
    <output method="text"/>
    <template match="/">
        <for-each select = "rss/channel/item/enclosure">
            <value-of select="@url"/><text>&#10;</text>
        </for-each>
        <for-each select = "rss/channel/item/media">
            <value-of select="@url"/><text>&#10;</text>
        </for-each>
    </template>
</stylesheet>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    xmlns:media="http://search.yahoo.com/mrss/"
    exclude-result-prefixes="media">
<xsl:for-each select="//media:content">
    <xsl:value-of select="@url" />
    <xsl:text>&#10;</xsl:text>
</xsl:for-each>