【发布时间】:2010-12-08 18:45:07
【问题描述】:
我有以下格式的 XML:
<policy_groups>
<policy_group>
<policygroup_name>Application Server with IIS</policygroup_name>
<policygroup_id>38</policygroup_id>
<policygroup_description />
<policygroup_creatorname>VMW2K3-SSI10-KF\VMW2K3-SSI10-KF\Administrator</policygroup_creatorname>
<policygroup_patchgroup>-1</policygroup_patchgroup>
<policygroup_signaturegroup>-1</policygroup_signaturegroup>
<policygroup_system>false</policygroup_system>
<policygroup_item>
<policygroupitem_id>83217</policygroupitem_id>
<policygroupitem_name>.NET Framework Support Service Status</policygroupitem_name>
<policygroupitem_type>0</policygroupitem_type>
<policygroupitem_policygroupid>38</policygroupitem_policygroupid>
<policygroupitem_productname>Windows Server 2003, Standard Edition</policygroupitem_productname>
<policygroupitem_spname>Gold</policygroupitem_spname>
<policygroupitem_checkshavlikid>207</policygroupitem_checkshavlikid>
<policygroupitem_value>Disabled-Not Found</policygroupitem_value>
<policygroupitem_operator>=</policygroupitem_operator>
<policygroupitem_displayvalue>Not Installed</policygroupitem_displayvalue>
</policygroup_item>
<policygroup_item>
<policygroupitem_id>85541</policygroupitem_id>
<policygroupitem_name>.NET Framework Support Service Status</policygroupitem_name>
<policygroupitem_type>0</policygroupitem_type>
<policygroupitem_policygroupid>38</policygroupitem_policygroupid>
<policygroupitem_productname>Windows Server 2003, Standard Edition</policygroupitem_productname>
<policygroupitem_spname>SP1</policygroupitem_spname>
<policygroupitem_checkshavlikid>207</policygroupitem_checkshavlikid>
<policygroupitem_value>Disabled-Not Found</policygroupitem_value>
<policygroupitem_operator>=</policygroupitem_operator>
<policygroupitem_displayvalue>Not Installed</policygroupitem_displayvalue>
</policygroup_item>
</policy_group>
</policy_groups>
XML 文档中有数千个<policygroup_item> 除外。
我需要删除所有policygroup_item 与<policygroupitem_productname> 和<policygroupitem_spname> 不匹配的任何以下组合:
- Windows 2000 高级服务器 SP4
- Windows 2003 企业版 SP2
- Windows 2003 企业版 (x64) SP2
- Windows 2003 R2 企业版 SP2
- Windows 2003 R2 企业版 (x64) SP2
- Windows 2008 企业版 SP2
- Windows 2008 企业版 (x64) SP2
- Windows 2008 标准版 SP2
- Windows 2008 R2 Standard (x64) Gold
- Windows 2008 R2 企业版 (x64) 黄金版
有没有办法用 XSLT 或 powershell 来做到这一点?或者也许是 VB 脚本?
谢谢
布拉德
【问题讨论】: