我正在運行我的PowerShell腳本以基本上從幾個較小的XML文件創建一個大的XML文件。來自其他文件的PowerShell XML節點
腳本打開Template.txt:
<?xml version="1.0" encoding="utf-8"?>
<Model>
<LobSystems>
<LobSystem>
<LobSystemInstances>
</LobSystemInstances>
<Entities>
<!-- individual <ENTITY> from every XML file goes here -->
</Entities>
</LobSystem>
</LobSystems>
</Model>
所有我想要做的是節點<Entity>
從每個XML文件複製在一個給定的文件夾,並使用模板和信息創建一個新的MASTER.XML和從文件夾中的每一個.XML提取<ENTITY>
,造成這樣的:
<?xml version="1.0" encoding="utf-8"?>
<Model>
<LobSystems>
<LobSystem>
<LobSystemInstances>
</LobSystemInstances>
<Entities>
<Entity Name="A"> // from File1.XML
<Value>XYZ</Value>
</Entity>
<Entity Name="B"> // from File4.XML
<Value>123</Value>
</Entity>
<Entity Name="C"> // from File3.XML
<Value>@#$</Value>
</Entity>
</Entities>
</LobSystem>
</LobSystems>
</Model>
到目前爲止,我的腳本如下:
[xml]$master = get-content .\Template.txt
$files = get-item -Path .\*.xml -Exclude 'Master.xml'
foreach ($file in $files)
{
[xml]$filecontents = get-content $file
$entity = $fileContents.Model.LobSystems.LobSystem.Entities.Entity
$master.Model.LobSystems.LobSystem.Entities.Entity.AppendChild($entity);
}
$master.Save("Master.xml")
那麼它不工作....我不斷收到有關AppendChild()的錯誤消息()
任何建議?
我建議:定義*不工作... *,包括在您的文章的錯誤消息。 – PetSerAl
您無法在空值表達式上調用方法。 At Parser.ps1:17 char:5 + $ master.Model.LobSystems.LobSystem.Entities.Entity.AppendChild($ importedEnti ... + ~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~ + CategoryInfo:InvalidOperation:(:) [],RuntimeException + FullyQualifiedErrorId:InvokeMethodOnNull –