Atom Feeds

Wikipedia : Atom (web standard)

W3C : Introduction to Atom

XSL file – “case-study-feeds/atom.xsl”
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:atom="http://www.w3.org/2005/Atom" version="1.0" exclude-result-prefixes="atom">

    <xsl:output method="html" version="1.0" encoding="UTF-8" indent="yes"/>
    <xsl:include href="../../plugins/tenandtwo-xslt-processor/xsl/date.xsl"/>

    <!-- main -->
    <xsl:template match="/">
        <xsl:apply-templates select="atom:feed"/>
    </xsl:template>

    <!-- feed -->
    <xsl:template match="atom:feed">
        <!-- header -->
        <h3><xsl:value-of select="atom:title"/></h3>
        <h5><xsl:value-of select="atom:subtitle"/></h5>

        <!-- body -->
        <xsl:apply-templates select="atom:entry"/>

        <!-- footer -->
        <hr size="1"/>
        <div>
            <xsl:text>Updated : </xsl:text>
            <time>
                <xsl:attribute name="datetime"><xsl:value-of select="atom:updated"/></xsl:attribute>
                <xsl:call-template name="date-format">
                    <xsl:with-param name="value" select="atom:updated"/>
                    <xsl:with-param name="format" select="'Y-m-d h:i A'"/>
                </xsl:call-template>
            </time>

            <xsl:for-each select="atom:author/*">  <!-- name, email, uri -->
                <br/>
                <xsl:text>Author : </xsl:text>
                <xsl:value-of select="text()"/>
            </xsl:for-each>

            <xsl:if test="string-length(atom:link[@rel='alternate']/@href) &gt; 0">
                <br/>
                <a target="_blank">
                    <xsl:attribute name="href"><xsl:value-of select="atom:link[@rel='alternate']/@href"/></xsl:attribute>
                    <xsl:text>Visit Website →</xsl:text>
                </a>
            </xsl:if>
        </div>
    </xsl:template>

    <!-- entry -->
    <xsl:template match="atom:entry">
        <hr size="1"/>
        <h5>
            <time>
                <xsl:attribute name="datetime"><xsl:value-of select="atom:updated"/></xsl:attribute>
                <xsl:call-template name="date-format">
                    <xsl:with-param name="value" select="atom:updated"/>
                    <xsl:with-param name="format" select="'Y-m-d h:i A'"/>
                </xsl:call-template>
            </time>
        </h5>
        <h4>
            <a target="_blank">
                <xsl:attribute name="href">
                    <xsl:choose>
                        <xsl:when test="string-length(atom:link[@rel='alternate']/@href) &gt; 0">
                            <xsl:value-of select="atom:link[@rel='alternate']/@href"/>
                        </xsl:when>
                        <xsl:when test="string-length(atom:link/@href) &gt; 0">
                            <xsl:value-of select="atom:link/@href"/>
                        </xsl:when>
                        <xsl:otherwise><xsl:value-of select="atom:id"/></xsl:otherwise>
                    </xsl:choose>
                </xsl:attribute>
                <xsl:value-of disable-output-escaping="yes" select="atom:title"/>
            </a>
        </h4>
        <div>
            <xsl:choose>
                <xsl:when test="string-length(.//atom:content) &gt; 0">
                    <xsl:value-of disable-output-escaping="yes" select=".//atom:content"/>
                </xsl:when>
                <xsl:otherwise>
                    <xsl:value-of disable-output-escaping="yes" select=".//atom:summary"/>
                </xsl:otherwise>
            </xsl:choose>
        </div>
    </xsl:template>

</xsl:stylesheet><!-- end atom.xsl -->

National Weather Service Alerts for OR

[xslt_transform_xml xsl="case-study-feeds/atom.xsl" xml="https://alerts.weather.gov/cap/or.php?x=0" /]
Output

Current watches, warnings, and advisories for Oregon


Beach Hazards Statement issued November 18 at 2:30PM PST until November 24 at 4:00AM PST by NWS Portland OR

* WHAT…Sneaker waves possible. * WHERE…North and Central Coast of Oregon, and South Washington Coast. * WHEN…From late Wednesday night through late Sunday night. * IMPACTS…Waves can run up significantly farther on a beach than normal, including over rocks and jetties. Sneaker waves can suddenly knock people off of their feet and quickly pull them into the frigid ocean which may lead to serious injury or drowning. * ADDITIONAL DETAILS…A Beach Hazards Statement is issued when sneaker waves create potentially life-threatening conditions in the surf zone. Caution should be used when in or near the water. Always keep an eye on the waves, and be especially watchful of children. Those participating in razor clam digs should exercise caution.

Freeze Warning issued November 18 at 2:22PM PST until November 19 at 10:00AM PST by NWS Pendleton OR

* WHAT…Sub-freezing temperatures as low as 31 expected. * WHERE…Eastern Columbia River Gorge of Oregon and Washington. * WHEN…From 11 PM this evening to 10 AM PST Wednesday. * IMPACTS…Frost and freeze conditions could kill crops, other sensitive vegetation and possibly damage unprotected outdoor plumbing.

High Surf Advisory issued November 18 at 2:06PM PST until November 21 at 4:00AM PST by NWS Medford OR

* WHAT…Large breaking waves of 20 to 24 feet. * WHERE…South Central Oregon Coast and Curry County Coast. * WHEN…From 10 AM Thursday to 4 AM PST Friday. * IMPACTS…Large breaking waves will create hazardous conditions along and within the surf zone, and could inundate beaches and low lying shorelines. Beach erosion is possible, and exposed infrastructure may be damaged. * View the hazard area in detail at https://www.wrh.noaa.gov/map/?wfo=mfr

Updated :
Author : w-nws.webmaster@noaa.gov