エンティティが宣言されている入力 XML があります。次のようになります。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE doctype PUBLIC "desc" "DTD.dtd" [
<!ENTITY SLSD_68115_jpg SYSTEM "68115.jpg" NDATA JPEG>
]>
DTD.dtd ファイルには、必要な表記が含まれています。
<!NOTATION JPEG SYSTEM "JPG" >
XSLT 変換中に、次のように「SLSD_68115_jpg」という名前を使用して、エンティティで宣言された URI を取得したいと考えています。
<xsl:value-of select="unparsed-entity-uri('SLSD_68115_jpg')"/>
「68115.jpg」のようなものが返されるように。
問題は、常に空の文字列を返すことです。入力 xml を変更する方法はありません。インターネットで見つけたものから、これが一般的な問題である可能性があることは理解していますが、この問題に対する最終的な結論、解決策、または代替案は見つかりませんでした。
StreamSource を使用していて、systemId などを手動で設定する必要があったため、以前に問題があったことに注意することが重要かもしれません。ここに問題が隠されている可能性があると思います。トランスフォーマーが指定された ID のエンティティを解決できないようです。
私は Xalan を使用しています。おそらく詳細を提供する必要がありますが、何を追加すればよいかわかりません。質問があればお答えします。
どんな助けでも大歓迎です。