1

Xsl ドキュメントを character-map で使用して、xml ファイル内の特定の特殊文字を置き換えようとしています。ここにxmlがあります:

    <?xml version="1.0" encoding="UTF-8"?>
    <?xml-stylesheet href="lesson12.xsl" type="text/xsl"?>
    <!DOCTYPE Groceries>
    <Groceries xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    
     xsi:noNamespaceSchemaLocation="lesson12.xsd">
     <Item><Name>Wasabi &#38; Soy Sauce Almonds</Name></Item>
     <Item><Name>Peanut Butter &#38; Jelly Spread</Name></Item>
     <Item><Name>Pork &#38; Beans</Name></Item>
     <Item><Name>Coca Cola&#174;</Name></Item>
     <Item><Name>Sprite&#174;</Name></Item>
     <Item><Name>Dr. Pepper&#174;</Name></Item>
     </Groceries>

ここに私のスキーマがあります:

     <?xml version="1.0"?>
     <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
     <xs:element name="Name" type="xs:token" />
     </xs:schema>

ここに私のxslがあります:

     <?xml version="1.0"?>
     <xsl:stylesheet
     xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
     xmlns:xs="http://www.w3.org/2001/XMLSchema"
     version="2.0">

     <xsl:output method="html" use-character-maps="my_char_map" />

     <xsl:character-map name="my_char_map">
        <xsl:output-character character="&#38;" string="and"/>
        <xsl:output-character character="&#174;" string="TM"/>
     </xsl:character-map>

     <xsl:template match="/"> 

     <h3>Groceries</h3>
     <xsl:for-each select="/Groceries/Item/Name">
     <ul>
     <li>
     <xsl:value-of select="."/>
     </li>
     </ul>
     </xsl:for-each>

     </xsl:template>
     </xsl:stylesheet>

私はまだ xml について学んでいますが、xsl:output を修正する必要があるのか​​、それとも何か他のものなのかはわかりません。

ありがとう!交流

4

1 に答える 1

2

Saxon CEを使用していない限り、ブラウザは character-map をサポートしない XSLT 1 のみを処理します。

<Groceries>(そして、あなたのスキーマはorを定義し<Item>ていませんが、ブラウザもそれを見ないので、それは問題ではありません。しかし、スキーマ認識モードの XSLT 2 パーサーは文句を言うかもしれません...)

于 2013-01-09T08:36:56.540 に答える