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 29 at 2:28AM PST until December 2 at 1:00PM PST by NWS Medford OR

* WHAT…High risk of sneaker waves expected. * WHERE…All beaches of Douglas, Coos, and Curry Counties. * WHEN…From Monday morning through Tuesday afternoon. * IMPACTS…Sneaker waves can run up significantly farther on beaches than normal, including over rocks and jetties. These waves can suddenly knock people off of their feet and sweep them into the ocean. The waves can also move logs or other objects which could crush or trap anyone caught underneath. * ADDITIONAL DETAILS…As this long period swell arrives early Monday, it could coincide with the high tide expected around 8 am PST Monday. While sneaker waves can occur at any time, the greatest risk is on an incoming tide. Please be aware of the tides if venturing out onto the beaches. * View the hazard area in detail at https://www.wrh.noaa.gov/map/?wfo=mfr

Beach Hazards Statement issued November 28 at 2:00PM PST until December 3 at 10:00PM PST by NWS Portland OR

* WHAT…Sneaker waves possible. * WHERE…North and Central Coast of Oregon, and South Washington Coast. * WHEN…From Tuesday morning through Wednesday evening. * IMPACTS…Waves can run up significantly farther on a beach than normal, including over rocks and jetties. Sneaker waves can suddenly knock beachgoers off if 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 additionally exercise caution.

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