XML | 質問トピック | 15 回答例
msxsl.exe 使ってます。
015.xml
<?xml version="1.0" encoding="utf-8"?> <catalog> <pr> <state>foo</state> <name>FOO</name> </pr> <pr> <state>bar</state> <name>BAR</name> </pr> <pr> <state>baz</state> <name>BAZ</name> </pr> <pr> <state>qux</state> <name>QUX</name> </pr> <pr> <state>quux</state> <name>QUUX</name> </pr> <pr> <state>corge</state> <name>CORGE</name> </pr> <pr> <state>grault</state> <name>GRAULT</name> </pr> <pr> <state>garply</state> <name>GARPLY</name> </pr> <pr> <state>waldo</state> <name>WALDO</name> </pr> <pr> <state>fred</state> <name>FRED</name> </pr> <pr> <state>plugh</state> <name>PLUGH</name> </pr> <pr> <state>xyzzy</state> <name>XYZZY</name> </pr> <pr> <state>thud</state> <name>THUD</name> </pr> <pr> <state>hoge</state> <name>HOGE</name> </pr> <pr> <state>piyo</state> <name>PIYO</name> </pr> <pr> <state>fuga</state> <name>FUGA</name> </pr> </catalog>
015.xsl
<?xml version="1.0" encoding="ISO-8859-1"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method='html' encoding='utf-8' doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN" indent='yes'/> <xsl:param name="items_per_page"/> <xsl:param name="query_state"/> <xsl:template match="/"> <html> <head> <title>_</title> </head> <body> <table rules="all" border="1"> <xsl:choose> <xsl:when test="$query_state='all'"> <xsl:apply-templates select="catalog/pr"/> </xsl:when> <xsl:otherwise> <xsl:apply-templates select="catalog/pr[contains(state, $query_state)]"/> </xsl:otherwise> </xsl:choose> </table> </body> </html> </xsl:template> <xsl:template match="catalog/pr"> <xsl:if test="$items_per_page='all' or position()<=$items_per_page"> <tr> <td align="center"><xsl:value-of select="position()"/></td> <td><xsl:value-of select="name"/></td> <td><xsl:value-of select="state"/></td> </tr> </xsl:if> </xsl:template> </xsl:stylesheet>
items_per_page=all query_state=qu の場合
015.bat
@echo off setlocal msxsl 015.xml 015.xsl items_per_page=all query_state=qu > 015.html endlocal echo on
015.html
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <META http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>_</title> </head> <body> <table rules="all" border="1"> <tr> <td align="center">1</td> <td>QUX</td> <td>qux</td> </tr> <tr> <td align="center">2</td> <td>QUUX</td> <td>quux</td> </tr> </table> </body> </html>
items_per_page=1 query_state=qu の場合
015.bat
@echo off setlocal msxsl 015.xml 015.xsl items_per_page=1 query_state=qu > 015.html endlocal echo on
015.html
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <META http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>_</title> </head> <body> <table rules="all" border="1"> <tr> <td align="center">1</td> <td>QUX</td> <td>qux</td> </tr> </table> </body> </html>