根据特定架构,我有一组我希望能够合并为单个XML的文件。
我正在考虑使用带有自定义XmlResolver
(C#/ .NET)的XSLT,尽管我不确定这是否能让我对XPath表达式如何进行足够的控制解析XSLT以便能够将某些表达式定向到某些文件。
要合并的文件将是XML片段。通常,整个片段将被合并到XML目标中,尽管可以选择仅合并某些字段。
示例:
从三个片段文件开始:
one.txt: contains <One>Number One</One> [or maybe just "Number One"]
two.txt: contains <Two>Number Two</Two> [or "Number Two"]
three.txt: contains <Three>Number Three</Three> [or "Number Three"]
我想将one.txt和two.txt组合成以下内容,同时忽略three.txt:
<Numbers>
<One>Number One</One>
<Two>Number Two</Two>
</Numbers>
我正在寻找描述性方法,而不是自定义代码,因为可能存在许多不同的片段和许多不同的组合。
我知道下面的代码不会起作用,但是这样的话:
<Numbers>
<xsl:value-of select="mine:one.txt/One" />
<xsl:value-of select="mine:two.txt/Two" />
</Numbers>
XML片段可能很复杂,因此简单的文件合并是不够的。我可能想要某种形式的XPath / XQuery来提取相关的部分。
有什么想法吗?
答案 0 :(得分:2)
有什么问题
<Numbers>
<xsl:copy-of select="doc('mine:one.txt')/One" />
<xsl:copy-of select="doc('mine:two.txt')/Two" />
</Numbers>
我不认为你已经解释了为什么你认为你可能需要一个自定义的XmlResolver,但如果你这样做,那就没问题了