XPath クエリを使用して Xml ファイルから読み取る perl スクリプトをいくつか書いています。Perl スクリプトから、最新の日付で 3 つの映画を返す必要があります (映画を日付で並べ替えるのと同様)。
xml ファイル:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="films.xsl"?>
<collection xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://...." xs:schemaLocation="http://.. films.xsd">
<film id="1">
<title>Title1</title>
<date>2011-09-24</date>
<family>Action</family>
</film>
<film id="4">
<title>Title2</title>
<date>1980-09-24</date>
<family>Thriller</family>
</film>
</collection>
どのようにできるのか??私はより多くの解決策を読んで試してみますが、何でもします。
私は試します
my $nodeset = $xp->findnodes(
"/collection/film[not(\@id < preceding-sibling::collection/film[\@id] ) and not(\@id < following-sibling::collection/film[\@id])]" );
XPath 2.0 の max 関数を試して、最新のものだけを返します。xsl を試します。
<xsl:for-each select="collection/film/date">
<xsl:sort select="." data-type="date" order="descending"/>
<xsl:value-of select="title"/>
</xsl:for-each>