「&#D;」を書く必要があります。xml のウムラウト文字に相当します。たとえば、文字列が "für" の場合、期待される出力は " für
" であり ü
、ü に相当します。
ここに私が現在持っているコードがあります:
private bool WriteOutXMLFile(string xsltFileName, XsltArgumentList argsList, string outputFile)
{
XslCompiledTransform transform = new XslCompiledTransform(true);
transform.Load(xsltFileName);
using(StreamWriter sw = new StreamWriter(outputFile,false,Encoding.UTF8))
{
transform.Transform(this.InputFilePath, argsList, sw);
}
return true;
}
XSLT は次のとおりです。
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:ms="urn:schemas-microsoft-com:xslt"
xmlns:dt="urn:schemas-microsoft-com:datatypes">
<xsl:output method="xml" />
<xsl:param name="InsideSales1"></xsl:param>
<xsl:param name="InsideSales2"></xsl:param>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<!--Project output nodes-->
<!--Calculation Number-->
<xsl:template match="kalkulationsnummer" >
<xsl:element name="kalkulationsnummer">
<xsl:value-of select="$CalculationNumber" />
</xsl:element>
</xsl:template>
</xsl:stylesheet>
スペースを考慮して、多くのパラメーターを削除しました。
誰か助けてくれませんか?
よろしく。
みなさん、こんにちは。argsList に追加するときに、System.Web.HttpUtility.HtmlEncode メソッドを使用して、ウムラウト文字に必要な値を取得しました。これは物事を行うためのより迅速な方法でしたが、私の要件に対してテストされていないため、機能しない可能性があります. より良いアプローチは、この投稿で提案されているバイト配列を使用することです。返信してくれたみんなに感謝します。