【发布时间】:2017-03-18 15:29:27
【问题描述】:
我正在解析 XML 文档以创建另一个 XML 文档。
文档看起来像这样:
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="02_tranformation.xsl"?>
<ROWSET>
<ROW>
<SRC_TABLE>myTable</SRC_TABLE>
<SRC_COLUMN>myColumn</SRC_COLUMN>
</ROW>
</ROWSET>
而02_transformation.xsl文件是这样的:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0"
xmlns="http://www.w3.org/1999/xhtml"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:fn="http://www.w3.org/2005/xpath-functions">
<xsl:output method="text" indent="no" encoding="UTF-8"/>
<xsl:template match="/ROWSET">
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE POWERMART SYSTEM "powrmart.dtd">
</xsl:template>
</xsl:stylesheet>
结果应该是:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE POWERMART SYSTEM "powrmart.dtd">
但结果是
TEMPLATE_ERROR: TRANSFORMATION: ORA-31011: XML parsing failed
ORA-19213: error occurred in XML processing at lines 1
LPX-00209: PI names starting with XML are reserved
我搜索了许多帮助网站,但我什至不明白这是什么意思。 我不知道它是否重要,但这在 Apex 应用程序中运行,它从数据库中读取表名(从...中选择),从这个结果创建 XML,我正在解析这个结果。问题是,这段代码在资源管理器中工作,但在这个应用程序中没有。 任何人都可以帮助我吗? 非常感谢 J.
【问题讨论】:
-
如果您的输出方法是
text,为什么需要 XML 声明和/或 DOCTYPE 声明?无论如何,仅使用您的代码无法复制您声称的结果。 -
错误的一个可能原因是 XML 声明之前的空格。这将被复制到结果文档中。 XML 解析器发现 "
-
原因是生成的文本将以我选择的结尾保存到文件中。实际上,这将是一个文本,但使用 .xml 它将被读取并用作 xml 文件。
-
空格不是这个错误的原因。我已经删除了所有空间,错误仍然存在。
标签: xml xslt transformation