外部DTDを使用したXMLの読み込み
-
2011年3月30日 0:37
お世話になります。
下記のXMLファイルを読み込むときに、
$doc = [xml](gc books.xml)
としているのですが、
値 "System.Object[]" を型 "System.Xml.XmlDocument" に変換できません。エラー: "ファイル 'C:\Users\(ログインアカウント名)\books.dtd'
が見つかりませんでした。"とエラー表示されます。同じフォルダにDTDファイルがあるのですが、読めるようにするにはどうしたららよいでしょうか。
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<!DOCTYPE books SYSTEM "books.dtd">
<books>
<book>
<title>入門編</title>
<category>VB.NET</category>
<author>山田君</author>
<price>1000</price>
<border/>
</book>
</books>
すべての返信
-
2011年3月30日 9:09モデレータ
PowerShellのカレントディレクトリと、.NETプログラムとしてのカレントディレクトリが異なるのが原因です。
なので、両者をあわせてやることで解決します。それには以下の文をXML読み込み前に実行すると良いでしょう。[System.Environment]::CurrentDirectory = Get-Location
- 回答の候補に設定 星 睦美Microsoft Contingent Staff, Moderator 2011年4月5日 6:43
- 回答としてマーク Brillia 2011年4月6日 0:36
-
2011年4月6日 0:36
ご返事ありがとうございました。
>[System.Environment]::CurrentDirectory = Get-Location
でDTDを読むことができました。
返事遅くなり申し訳ございませんでした。。。

