我是 xslt 的新手,我需要使用 xslt 将两个 xml 合并为一个。作为最初的练习,我创建了三个文件,file1.xml、file2.xml 和 transform.xslt,并弄清楚了如何通过直接运行 file1.xml 来合并它们。我是这样做的:
在 file1.xml 中:
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="transform.xslt"?>
<stuff>
...
</stuff>
在 file2.xml 中:
<morestuff>
...
</morestuff>
在 transform.xslt 中:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:custom="custom-functions">
<xsl:output method="xml" indent="yes" version="1.0" encoding="ISO-8859-1"/>
<xsl:variable name="file2" select="document('file2.xml')" />
<xsl:doing-stuff>
...
<!-- contains references to $file2 -->
...
</xsl:doing-stuff>
</xsl:stylesheet>
但我需要能够通过我的 C# ASP.NET 代码并使用给定的 xml字符串而不是 xml文件来做到这一点。像这样:
public string MergeXmls(string xml1, string xml2){
string mergedXml;
var xsltPath = HttpContext.Current.Server.MapPath("transform.xslt");
//???
return mergedXml;
}
我怎样才能做到这一点?我知道我需要 document('file2.xml')
从 transform.xslt 中删除对的引用,但我不知道从那里去哪里。