1

ここでの私の目的は、元の 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>
4

1 に答える 1