【发布时间】:2014-11-15 00:29:38
【问题描述】:
我正在尝试使用 PowerShell 将 3 个 xml 文件合并为 1 个。 我尝试了多种使用 Select-Xml、CreateElement 和 AppendChild 等的方法,但似乎无法理解如何将我想要正确包含到新 XML 文档中的元素。我要么得到一个空的结果文件,要么在节点中得到 System.Xml.Element。
这三个文件的内容是: 档案A
<?xml version="1.0" encoding="utf-8"?>
<ResourceResponse>
<Status>Success</Status>
<Resource id="12345" name="aName" description="Microsoft Windows 2008" location="" instanceId="10003" typeId="1">
<Agent id="23456" address="x.x.x.x" port="2144" version="x.x.x" unidirectional="false" />
<Ip address="x.x.x.x" netmask="255.0.0.0" mac="00:00:00:00:00:00" />
<Ip address="x.x.x.x" netmask="255.255.240.0" mac="00:50:56:03:40:E2" />
<ResourceInfo key="fqdn" value="aName.here.lo" />
</Resource>
</ResourceResponse>
文件 B
<?xml version="1.0" encoding="utf-8"?>
<ResourcePrototypeResponse>
<Status>Success</Status>
<ResourcePrototype instanceId='10164' resourceTypeId='3' id='10213' name='TCP Socket'/>
</ResourcePrototypeResponse>
文件 C
<?xml version="1.0" encoding="utf-8"?>
<Resource name="SocketHTTP">
<ResourceConfig key="hostname" value="localhost"/>
<ResourceConfig key="port" value="80"/>
<ResourceConfig key="sotimeout" value="10"/>
<ResourceConfig key="service.log_track.enable" value="false"/>
<ResourceConfig key="service.log_track.level" value="Error"/>
<ResourceConfig key="service.log_track.include" value=""/>
<ResourceConfig key="service.log_track.exclude" value=""/>
<ResourceInfo key="autoIdentifier" value="SocketHTTP"/>
</Resource>
我希望创建的文件看起来像:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<CreateResourceRequest>
<Resource id="12345" name="aName" description="Microsoft Windows 2008" location="" instanceId="10087" typeId="1">
<Agent id="23456" address="x.x.x.x" port="2144" version="x.x.x" unidirectional="false"/>
<Ip address="x.x.x.x" netmask="255.255.255.0"/>
<Ip address="x.x.x.x" netmask="255.0.0.0"/>
<ResourceInfo key="fqdn" value="aName.here.lo"/>
</Resource>
<ResourcePrototype instanceId="10164" resourceTypeId="3" id="10213" name="TCP Socket"/>
<Resource name="SocketHTTP">
<ResourceConfig key="hostname" value="target.here.lo"/>
<ResourceConfig key="port" value="80"/>
<ResourceConfig key="sotimeout" value="10"/>
<ResourceConfig key="service.log_track.enable" value="false"/>
<ResourceConfig key="service.log_track.level" value="Error"/>
<ResourceConfig key="service.log_track.include" value=""/>
<ResourceConfig key="service.log_track.exclude" value=""/>
<ResourceInfo key="autoIdentifier" value="SocketHTTP"/>
</Resource>
</CreateResourceRequest>
提前谢谢,我很难过....
【问题讨论】:
标签: xml powershell