ここでの私の目的は、元の xml ファイルを xsl を介して utf-8 エンコーディングを持つ宛先に変換することです。次のヘッダーを持つ元の xml ファイルを次に示します。
<?xml version='1.0' encoding='ISO-8859-1'?>
これを xsl を使用して別の xml ファイルに変換しています。xsl ファイルには次のヘッダーがあります。
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns="http://www.w3.org/1999/xhtml"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0"
xmlns:xalan="http://xml.apache.org/xalan"
exclude-result-prefixes="xalan">
<xsl:output method="xml"
encoding="UTF-8"
indent="yes"
xalan:indent-amount="4"/>
C# コードは次のとおりです。
XPathDocument myXPathDoc = new XPathDocument(FileName);
XslCompiledTransform myXslTrans = new XslCompiledTransform();
myXslTrans.Load("C:/test/test.xsl");
XmlTextWriter myWriter = new XmlTextWriter(destinationFile, Encoding.UTF8);
myWriter.Formatting = Formatting.Indented;
myWriter.Indentation = 4;
myXslTrans.Transform(myXPathDoc, null, myWriter);
myWriter.Close();
これの出力は、destinationfile で文字化けしたアラビア語のテキストを取得することです。適切なアラビア語のテキストを読むにはどうすればよいですか。
編集、質問2:
元の XML ファイルには、終了ルート/子タグがありません。この xml を編集してこれらを含めるにはどうすればよいですか。
たとえば、元の xml ファイルで、aaaa と nnnn の終了が欠落しています。それらを取得するために C# を使用して編集するにはどうすればよいですか。
<aaaa>
<nnnn)
<rrrr>
</rrrr>