我有以下 XML:
<xml version="1.0" encoding="UTF-8">
<query>
<row>
<Name>Ed</Name>
<ID>11</ID>
</row>
<row>
<Name>Chad</Name>
<ID>12</ID>
</row>
<row>
<Name>Jason</Name>
<ID>13</ID>
</row>
</query>
</xml>
我想使用 XSLT 执行以下操作:
<create a variable that is a copy of the entire XML document>
<append an additional node to the XML in the variable>
<loop through each <row> inside the new variable and output the name and ID>
所以在变量内部,我想以这个 XML 结尾
<xml version="1.0" encoding="UTF-8">
<query>
<row>
<Name>Ed</Name>
<ID>11</ID>
</row>
<row>
<Name>Chad</Name>
<ID>12</ID>
</row>
<row>
<Name>Jason</Name>
<ID>13</ID>
</row>
<row>
<Name>Mark</Name>
<ID>14</ID>
</row>
</query>
</xml>
最后得到这个输出:
Ed
11
Chad
12
Jason
13
Mark
14
我想使用变量的原因是因为我正在使用适用于 Oracle BI Publisher 的 Microsoft Word 插件。该插件允许您使用 XSLT 创建模板,该模板从查询中获取 XML 结果以生成 PDF 文件;它基本上是一个花哨的邮件合并。但是,查询没有返回一些行,我需要在循环数据之前将它们添加到 XML 文档中。
由于模板的性质,我认为我不能在处理 XML 之前使用外部 XSL 文件来修改它。因此,我唯一能想到的就是使用所有 XML 创建一个变量,将查询不会返回的附加节点附加到变量中的 XML,然后循环该变量以输出值。我一直在搜索 SO 并找到了这样的帖子,但我不希望结果是修改后的 XML 文件,我希望它是我可以在模板中立即使用的东西,就像一个变量。