2010-12-08 17 views
2

から要素を削除します。私は次の形式でXMLを持つ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> 

<policygroup_item>年代の何千ものXML文書である場合を除き。私は<policygroupitem_productname><policygroupitem_spname>は、以下の組み合わせのいずれかに一致しないpolicygroup_itemを削除する必要が

  • のWindows 2000 Advanced ServerのSP4
  • Windows 2003のEnterprise EditionのSP2
  • Windows 2003のEnterprise Editionの(x64)SP2
  • Windows 2003 R2 Enterprise Edition SP2
  • Windows 2003 R2 Enterprise Edition(x64)SP 2
  • Windows 2008のEnterprise EditionのSP2
  • Windows 2008のエンタープライズ版(x64)のSP2
  • Windows 2008のStandard EditionのSP2
  • のWindows 2008 R2の標準(x64)のゴールド
  • のWindows 2008 R2のEnterprise(x64)のゴールド

XSLTまたはpowershellでこれを行う方法はありますか?またはVBスクリプト?

おかげ

ブラッド

答えて

1

は試合を行うものをコピーすると考える、一致しないものを削除するようなものと考えてはいけません。保持したいすべてのタグの選択に<xsl:copy-of> elementを使用してください。

+0

ドン - 提案してくれてありがとう、私はxslの経験はほとんどないと認めなければならない。私はGoogleのxsl:copy-ofを試してみましたが、私が望む要素を抽出するためにどのように使用するのか分かりません。あなた(または他の誰か)が私が使い始めることができる例がありますか?ありがとう – Brad

+0

私は答えに含まれているリンクはw3schools.comに移動します。これは、Webで見つけたXSLTの基本的な紹介です。また、同じサイトのXPathリファレンスも参照してください。それでも問題が解決しない場合は、Michael KayのXSLTブックをお勧めします。http://www.wrox.com/WileyCDA/WroxTitle/XSLT-2-0-and-XPath-2-0-Programmer-s-Reference-4th- Edition.productCd-0764569090.html –

関連する問題