1

我有这些 XML 文件:

master.xml (which uses XInclude to include child1.xml and child2.xml)
child1.xml
child2.xml

两者都child1.xml包含child2.xml一个<section>带有一些文本的元素。

在 XSLT 转换中,我想添加<section>元素来自的文件的名称,所以我得到如下内容:

<section srcFile="child1.xml">Text from child 1.</section>
<section srcFile="child2.xml">Text from child 2.</section>

如何检索值child1.xmlchild2.xml

4

2 回答 2

1

除非您关闭该功能,否则所有 XInclude 处理器都应在包含文件的 URL 中添加一个 @xml:base 属性。所以你不必做任何事情,它应该已经是:

<section xml:base="child1.xml">Text from child 1.</section>
<section xml:base="child2.xml">Text from child 2.</section>

(如果需要,可以使用 XSLT 将 @xml:base attr 转换为 @srcFile。)

于 2013-08-10T05:13:07.740 回答
0

我有 99% 的把握,一旦 xi:include 被处理,您将拥有一个文档(和单个信息集),它不会让您确定文档的任何给定部分来自哪个 URL。

我认为您需要将该信息直接放在各个包含的文件中。话虽如此,您仍然可以尝试document-uri,但我认为所有节点都会返回相同的 URI。

于 2012-05-16T17:04:14.797 回答