我有一个输入 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,我可能需要提供更多详细信息,但我不确定要添加什么,我会回答任何问题。
任何帮助将不胜感激。