この記事は2008/03/04にわんくまブログで書いたものです
での Xmlファイルの作成はEncodingの指定をせずに保存しました。
今回はEncodingを指定して、保存する方法を紹介します。
まずは保存先ファイル名とEncodingを変数に代入します。
PS C:\Work> $SaveFile = "C:\Work\UTF8.xml" PS C:\Work> $Encoding = [System.Text.Encoding]::UTF8
次に、前回同様ヒア文字列を使用してXML文字列を作成
PS C:\Work> $strXml = @">> <?xml version='1.0' encoding='utf-8' ?>>> <personal_data>>> <zip_code>012-3456</zip_code>>> <address>1-1,Tokyo,Japan</address>>> <name>HIRO</name>>> </personal_data>>> "@>>
で、これをXmlDocument型にキャストしておきます。
PS C:\Work> $xmlDoc = [xml]$strXml
で、前回はここで$XmlDoc.Save()メソッドを実行したのですが、ここでXmlTextWriterを作成します。
こうすることでEncodingを指定できます。
PS C:\Work> $XmlWriter = New-Object System.Xml.XmlTextWriter($SaveFile, $Encoding)
で、保存して、XmlTextWriterを閉じます。
PS C:\Work> $xmlDoc.Save($xmlWriter) PS C:\Work> $xmlWriter.Close()
実際にファイルを開いてみると、utf-8で有ることが確認できます。(下図はサクラエディタで開いたものです)
最後に、上記を応用して、Shift_Jisで保存してみたいと思います。
PS C:\Work> $SaveFile = " ps c:\Work\Shift_Jis.xml? c:\Work>$encoding = [System.Text.Encoding]::GetEncoding("Shift_Jis") PS C:\Work> $xmlDoc = [xml]$strXml PS C:\Work> $XmlWriter = New-Object System.Xml.XmlTextWriter($SaveFile, $Encoding) PS C:\Work> $xmlDoc.Save($xmlWriter) PS C:\Work> $xmlWriter.Close()
作成したXmlファイルはShift_Jisであることが確認できます。
注意事項が2点あります。
1つ目はEncodingです。
UTF8のときと違って、Shift_Jistは
$encoding = [System.Text.Encoding]::Shift_Jis
とすることができません。
GetEncodingメソッドを使用して
[System.Text.Encoding]::GetEncoding("Shift_Jis")
とする必要があります。
2つ目は、Xmlファイルが改行されずに1行になってしまっていることです。
(前回の方法で保存したものは改行および自動インデントがされました)
これについては、次回以降で説明したいと思います。
Theme design by Jelle Druyts
Pick a theme: BlogXP business calmBlue Candid Blue dasBlog dasblogger DirectionalRedux Discreet Blog Blue Elegante essence Just Html MadsSimple Mobile Mono Movable Radio Blue Movable Radio Heat nautica022 orangeCream Portal Project84 Project84Grass Slate Sound Waves Tricoleur useit.com Voidclass2 BlogXP business calmBlue Candid Blue dasBlog dasblogger DirectionalRedux Discreet Blog Blue Elegante essence Just Html MadsSimple Mobile Mono Movable Radio Blue Movable Radio Heat nautica022 orangeCream Portal Project84 Project84Grass Slate Sound Waves Tricoleur useit.com Voidclass2
Powered by: newtelligence dasBlog 2.0.7226.0
The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.
© Copyright 2009, HIRO
E-mail