1

XSLを勉強していますが、文字列内の特定の文字を置き換えることについて質問があります。

xmlファイルがあります

<family>
-<familyid id="first">
--<name>smith</name>
--<image>fatherpic\myfather.jpg</image>

画像を挿入するための画像パスを取得したいのですが。

たとえば、パスは「fatherpic\myfather.jpg」です。

次に、「fatherpic/myfather.jpg」を選択します

つまり、"/"を"\"に変更したいということです。

翻訳機能を使おうとしていました。しかし、それは機能しませんでした。

誰かが例をあげることができますか?ありがとう

4

2 に答える 2

1

次のxsltは、画像要素の「\」を「/」に置き換えて印刷し、残りのxmlファイルを変更せずに印刷します。

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="xml" />
    <xsl:template match="node() | @*">
        <xsl:copy>
            <xsl:apply-templates select="node() | @*" />
        </xsl:copy>
    </xsl:template>
    <xsl:template match="image">
        <image>
            <xsl:value-of select="translate(., '\', '/')" />
        </image>
    </xsl:template>
</xsl:stylesheet>
于 2013-02-22T10:04:52.320 に答える
0

あなたがあなたの投稿で言ったように、あなたは翻訳機能を使うことができます。

次のスタイルシートは、画像値の値を抽出し、説明されている文字列変換を行った後、テキストのように出力します。これは、変換機能の使用方法の一例にすぎません。

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

    <xsl:output method="text" indent="no" />

    <xsl:template match="text()" />

    <xsl:template match="image">
        <xsl:value-of select="translate(., '\', '/')" />
    </xsl:template>

</xsl:stylesheet>

それが役に立てば幸い。

于 2013-02-22T10:01:14.960 に答える