0

次のようにフォーマットされた xml 要素がたくさんあります。

<WP featured="yes" player="no" dancers="no" series="logos" archive="no" fanart="no" id="eclipse_logos_">
    <seriesName>LOGOS</seriesName>
    <selection>ECLIPSE</selection>
    <imgurl>http://www.example.com/eclipse_logos_</imgurl>
    <res>1024x1024r(iPad/iPhone)?1280x1024r(Regular)?1440x900r(Widescreen)?1920x1080r(HDTV)?1920x1200r(Widescreen)</res>
</WP>

なりたいもの

<WP>
    <featured>yes</featured>
    <player>no</player>
    <dancers>no</dancers>
    <series>logos</series>
    <archive>no</archive>
    <fanart>no></fanart>
    <id>eclipse_logos_</id>
    <seriesName>LOGOS</seriesName>
    <selection>ECLIPSE</selection>
    <imgurl>http://www.example.com/eclipse_logos_</imgurl>
    <res>1024x1024r(iPad/iPhone)?1280x1024r(Regular)?1440x900r(Widescreen)?1920x1080r(HDTV)?1920x1200r(Widescreen)</res>
</WP>

いくつかの調査の結果、xslt スタイルシートを使用することが、この変換を行うための推奨される方法のようです。

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl">
    <xsl:output method="xml" indent="yes"/>

    <xsl:template match="@* | node()">
        <xsl:copy>
            <xsl:apply-templates select="@* | node()"/>
        </xsl:copy>
    </xsl:template>

    <xsl:template match="@*">
        <xsl:element name="{name()}"><xsl:value-of select="."/></xsl:element>
    </xsl:template>
</xsl:stylesheet>

しかし、私は xsl スタイルシートにあまり詳しくありません。誰かが変換を適用するプロセスを説明してもらえますか? 試してみると、いつでも空白のページが表示されます。xml doc の先頭に次のコードを追加しました。

<?xml version="1.0" encoding="ISO-8859-1"?> <?xml-stylesheet type="text/xsl" href="wallpaper.xsl"?>

それに応じて xsl ファイルに名前を付けます。何か不足していますか?

4

1 に答える 1

2

コンピュータで何かをしたいときはいつでも、それを実行するプログラムを見つけなければなりません。スタイルシートを XML ドキュメントに適用する場合、探しているプログラムは XSLT プロセッサです。

最近のすべてのブラウザには XSLT 1.0 プロセッサが組み込まれて<?xml-stylesheet?>おり、XML ドキュメントに処理命令が表示されると、自動的に呼び出されます。しかし、それはあまり役に立ちません。なぜなら、出力を画面に表示するだけで、おそらくファイルに送信する必要があるからです。

かなりの数の XSLT プロセッサが存在します。ほとんどの場合、コマンド ライン インターフェイスが用意されています。コンピューターでコマンド ラインを使用することに慣れている場合は、それが適切な方法です。xsltproc と Saxon が可能な選択肢として言及されています。どちらも優れていますが、Saxon には XSLT 2.0 がサポートされているという利点があります。これは、遅かれ早かれ、この例よりも少し複雑なことをしたい場合に必要になります。

コマンド ラインに慣れていない場合は、GUI アプリケーションがあります。多くの XML 作業を行う場合は、XML IDE に投資する価値があります。その中で最も人気があるのは、Altova XML Spy、Stylus Studio、および oXygen です。酸素を使用しています。より軽量なものが必要な場合は、「Kernow for Saxon」と呼ばれる Saxon の GUI フロントエンドがあり、SourceForge からダウンロードできます。

于 2012-05-24T07:25:05.783 に答える