無効なXML文字列とは < > " ' & などがあります。
これらの文字は XMLファイル内でデータとして使用されると構造を崩してしまいます。
この文字を等価で有効な文字に置き換えるには System.Security.SecurityElement の Escapeメソッドを使用します。
使用方法は下記の通りです。
PS > [System.Security.SecurityElement]::Escape("<") < PS > [System.Security.SecurityElement]::Escape(">") > PS > [System.Security.SecurityElement]::Escape("`"") " PS > [System.Security.SecurityElement]::Escape("`'") ' PS > [System.Security.SecurityElement]::Escape("&") &
ちなみにHTMLエンコードの場合は
Web.HttpUtility の HtmlEncodeメソッドを使用します。
PS > [Web.HttpUtility]::HtmlEncode("<") < PS > [Web.HttpUtility]::HtmlEncode(">") > PS > [Web.HttpUtility]::HtmlEncode("`"") " PS > [Web.HttpUtility]::HtmlEncode("`'") ’ PS > [Web.HttpUtility]::HtmlEncode("&") &
結果が微妙に違いますのでHTMLとXMLでのエンコードは使用するメソッドは使い分けましょう。
コメント
無効なXML文字です。
場所 部分:/word/documentxml、行:2列:9590
と出ています。対処法をお知らせください。
無効な文字のため、ファイルが開けないとでた