2011-08-03 2 views
0

変数$returnedxmlは、XMLで作成されたSQLクエリ結果です。私はxml.xmldocumentがあると思っPowerShellでxmlファイルからコンテンツを取得するには?

Exception calling "Load" with "1" argument(s): "Could not find file 'C:\Users\admin\System.Xml.XmlDocument'." 
At D:\connecttods3andinvoke.ps1:47 char:14 
+ $xmldoc.load <<<< ($Returnedxml) 
+ CategoryInfo   : NotSpecified: (:) [], MethodInvocationException 
+ FullyQualifiedErrorId : DotNetMethodException 

:ここ

$xmldoc= new-object xml.xmldocument 

$xmldoc.load($Returnedxml) 

$xmldoc.releasepath 

は返されたエラーアラームです:私のコードです私はここで

<ReleasePath>\\sharespace\test1\\10.0.1212.00</ReleasePath> 

それからコンテンツ 'releasepath' \\sharespace\test1\\10.0.1212.00を取得する必要がありますネットクラス、私は間違っていたようです。それで私は何をすることができますか?

答えて

1

変数$Returnedxmlは絶対パスのファイル名である必要があります。しかし、現在はクラスSystem.Xml.XmlDocumentのオブジェクトです。

変数を変更して、ファイルを読むことができます。

または、すでにXmlDocumentのオブジェクトが$Returnedxmlにある場合は、$xmldocに読み込む必要はありません。どちらも同じクラスのものです。 $ Returnedxmlを使用してください

4

XMLデータの処理は非常に多くの管理タスクにとって不可欠なので、PowershellにはXMLタイプアクセラレータがあります。だから、これは同様に動作します:

[xml]$xmldoc = $returnedxml 
$xmldoc.releasepath 
+0

エラーメッセージによれば、それはすでにXMLドキュメントです。だから、最初の行をスキップすることができます。 – JasonMArcher

+0

どのようなエラーメッセージが表示されますか? – EBGreen

+0

OPからのエラーメッセージは、ファイルが見つかりませんでした。 – EBGreen

2

私は単なる文字列にそれを読んで...

$file = [IO.File]::ReadAllText($filename) 

はそれから値を取得するためにXPathを使用して...

$releasePath = $file | SelectXml "//ReleasePath" 

XPathは、xmldocを使用するよりもはるかに単純な(コード化された)XMLファイルから物事を引き出すのに本当に強力です。

0

あなたは間違った読み込みを使用しています。それはファイル用です

$xmldoc.LoadXml($Returnedxml) 
関連する問題