我有一個XmlDocument
,其屬性爲Title
和ID
。我也有一個C#類,它具有與我一樣的屬性Add-Type -Language CSharp -...
。有沒有簡單的方法來鑄造XmlDocument
或它的孩子將其轉換爲C#類?將XML文檔轉換爲Powershell中的自定義類對象
編輯
我使用PowerShell 4和XML看起來是這樣的:
<?xml version="1.0" encoding="utf-8"?>
<Objects>
<Object>
<Property Name="Title">Foo</Property>
<Property Name="Description">Bar</Property>
</Object>
</Objects>
我的PowerShell腳本看起來是這樣的:
$code = @"
using System;
namespace CSnamespace{
public class CSclass {
public string Name { get; set; };
public string Description { get; set; };
}
}
"@
Add-Type -TypeDefinition $code -Language CSharp
$xml = [xml](Get-Content $path)
這並未不工作,但我正在尋找這樣的事情:
$CSclass = [CSnamespace.CSclass]$xml
任何幫助非常感謝。
UPDATE
具有標記爲從TToni應答回覆的幫助下,我能得到我需要的到底是什麼,但有一些調整。我的PowerShell代碼看起來是這樣的:
foreach ($object in $xml.Objects.Object) {
$cs = New-Object CSnamespace.CSclass
foreach ($property in $object) {
$cs.($property.Name) = $property.Innertext
}
}
通過C#類,你的意思是.NET?如果是這樣,你可以打開文檔(獲取內容等),並使用$ xml = [xml](gc somefile.xml)將其明確地轉換爲XML文檔。 – thepip3r
請給出一個xml示例,類和您的版本的PowerShell。 – JPBlanc