xslt は初めてで、xslt を使用して 2 つの xml を 1 つに結合する必要があります。最初の演習として、file1.xml、file2.xml、および transform.xslt の 3 つのファイルを作成し、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;
}
どうすればこれを実現できますか? transform.xslt からへの参照を削除する必要があること document('file2.xml')
はわかっていますが、そこからどこに行けばよいかわかりません。