私はPowerShellを初めてお使いになり、最初のスクリプトを作成しようとしています。私はPowerShell v2.0を使用しています。私は、API呼び出しを行い、データを$data
変数にする以下のスクリプトを持っています。PowerShell - XMLデータへのAPIデータ
$FullURL = $url1+$url2+$Url3
$client = New-Object System.Net.WebClient
$data = $client.DownloadString($FullURL)
Set-Content -Value $data -Path 'c:\API.txt'
$data
以下(一例)を出力します。注 - gettype()の結果は文字列です。 -
<attribute name="Business Unit">Platform</attribute>
<attribute name="Department">Channels Technology</attribute>
<attribute name="Team">Stackexchange</attribute>
<attribute name="Environment">World</attribute>
<attribute name="ServerModel">Synology</attribute>
<attribute name="datacentre">New York</attribute>
<attribute name="Application">PowerShell Teacher</attribute>
<attribute name="Description">Learn How To Use PowerShell</attribute>
私は、属性タグの間には、XMLファイルの以下のサンプルに上記を取得する必要があります -
<selfAnnounce>
<enabled>true</enabled>
<retryInterval>60</retryInterval>
<requireReverseConnection>false</requireReverseConnection>
<probeName>
<hostname/>
<data>_</data>
<port/>
<data>-SA</data>
</probeName>
<managedEntity>
<name></name>
<attributes>
</attributes>
私はこの1つで開始する場所を確認していません。私はそれが以下のようなものになるだろうと思ったが、結果は、彼らがpscustomオブジェクトではありません多分ので、すべてのタグである -
[xml]$XML = Get-Content $SelfannounceXMLEdit
$data | ForEach-Object {
$tempchild = $XML.CreateElement("Attributename")
$tempchild.set_InnerText($_)
$newType = $XML.netprobe.selfAnnounce.managedEntity.attributes.AppendChild($tempchild)
}
$XML.Save($SelfannounceXMLEdit)
これは明らかにXMLファイル -
について間違っている、以下の結果が得られます<attributes>
<Attributename><attribute name="Business Unit">Platform</attribute> <attribute name="Department">Channels Technology</attribute> <attribute name="Team">Stackexchange</attribute> <attribute name="Environment">World</attribute> <attribute name="ServerModel">Synology</attribute> <attribute name="datacentre">New York</attribute> <attribute name="Application">PowerShell Teacher</attribute> <attribute name="Description">Learn How To User PowerShell</attribute></Attributename>
</attributes>
結果は以下のようになります -
<?xml version="1.0" encoding="ISO-8859-1"?>
<netprobe compatibility="1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://google.com/netprobe.xsd">
<selfAnnounce>
<enabled>true</enabled>
<retryInterval>10</retryInterval>
<requireReverseConnection>false</requireReverseConnection>
<probeName>
<hostname />
<data>_</data>
<port />
<data>-SA</data>
</probeName>
<managedEntity>
<name></name>
<attributes>
<attribute name="Business Unit">Platform</attribute>
<attribute name="Department">Channels Technology</attribute>
<attribute name="Team">Stackexchange</attribute>
</attributes>
<types>
<type>Core</type>
<type>Core Windows</type>
<!--Autogenerated types-->
<!--End of Autogenerated types-->
</types>
</managedEntity>
<gateways>
<gateway>
<hostname>MFT556</hostname>
<port>1234</port>
</gateway>
</gateways>
</selfAnnounce>
</netprobe>
私はこの問題を解決してください。 $ dataをxmlに変換しようとしましたが、エラーが続いています。 XMLとしてAPIをエクスポートしようとしましたが、エラーが発生しました。どんな助けもありがとう。
次回は有効なxml-samplesを含めてください。ここに要素がたくさんあります。 –
こんにちはF、謝罪、私は完全なXMLファイルを表示するためのポストを更新しました。ありがとうございます –
彼らはちょうど表示され、結果がどのようになるかの例です。 XMLはテンプレートであり、属性はありません。 APIコールは、XMLのインポートが必要なホストの属性を取得します。 –