我有一个名为 Dictionary.xml 的文件
<?xml version="1.0" encoding="UTF-8"?>
<DICTIONARY SNAPSHOT_DATE="30.07.2014 17:55:37" SNAPSHOT_CREATOR="XYZ" MODULE="Core" MODULE_VERSION_FROM="ALL" MODULE_VERSION_UNTIL="1.04">
<DICT_ENTRY DICT_ID="58384" VARIANT_ID="13692" STATUS="NEW">
<LANG_ENTRY LANG_ID="EN" STATUS="PROOFED"><![CDATA[Reset target]]></LANG_ENTRY>
</DICT_ENTRY>
... snip...
</DICTIONARY>
我尝试在我的 XSLT 中使用它
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fn="w3.org/2005/xpath-functions" xmlns:xs="w3.org/2001/XMLSchema" exclude-result-prefixes="xs fn">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:param name="dictionary_file">Dictionary.xml</xsl:param>
<xsl:variable name="dictstrings" select="document($dictionary_file)"/>
... snip...
</xsl:stylesheet>
这会产生一个错误(在 Altova XMLSpy Professional Edition v2012 sp1 中)说
XTDE1170: Error in XPath 2.0 expression
Error retrieving resource 'Dictionary.xml'
但是,如果我简化 Dictionary.xml 的内容,使其读取
<?xml version="1.0" encoding="UTF-8"?>
<DICTIONARY>
<DICT_ENTRY DICT_ID="58384">
<LANG_ENTRY>Reset target</LANG_ENTRY>
</DICT_ENTRY>
... snip ...
</DICTIONARY>
然后它加载并使用 Dictionary.xml 的内容。
我认为它不喜欢原始 Dictionary.xml 的格式。你知道吗?或者还有其他我没有在这里发现的问题?
编辑:或者更准确地说,您对我如何制作一些 XSLT 以便我的用户可以使用原始格式的未更改字典文件运行 XSLT 样式表有很好的建议吗?(感谢其他编辑。)