How do I remove an XML node using PowerShell?
I am struggling to find a way to remove this node:
<Mapping Key="pdf" Value="icpdf.gif"/>
I have listed the XML file at the bottom of this thread.
This is what I've got so far.
This is what I'm running:
$xmlFile = “C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\TEMPLATE\XML\docicon.xml”
$xmlDoc = [XML](gc $xmlFile)
$xml =[xml]'<DocIcons><ByExtension><Mapping Key ="pdf" Value = "icpdf"/></ByExtension></DocIcons>'
$xml | Select-Xml -XPath '//Mapping' | ForEach-Object{$_.Node.RemoveAll()}
$xmldoc.save("C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\12\TEMPLATE\XML\docicon.xml")
$xml
Any help greatly appreciated :-)
docicon.xml: the offending node is right near the end
<?xml version="1.0" encoding="utf-8"?>
<DocIcons>
<ByProgID>
<Mapping Key="Excel.Sheet" Value="ichtmxls.gif" EditText="Microsoft Office Excel" OpenControl="SharePoint.OpenDocuments" />
<Mapping Key="FrontPage.Editor.Document" Value="ichtmfp.gif" EditText="Microsoft Office SharePoint Designer" OpenControl="SharePoint.OpenDocuments" />
<Mapping Key="InfoPath.Document" Value="icxddoc.gif" EditText="Microsoft Office InfoPath" OpenControl="SharePoint.OpenXMLDocuments" />
<Mapping Key="InfoPath.Document.2" Value="icxddoc.gif" EditText="Microsoft Office InfoPath" OpenControl="SharePoint.OpenXMLDocuments.2" />
<Mapping Key="InfoPath.Document.3" Value="icxddoc.gif" EditText="Microsoft Office InfoPath" OpenControl="SharePoint.OpenXMLDocuments.3" />
<Mapping Key="InfoPath.Document.4" Value="icxddoc.gif" EditText="Microsoft Office InfoPath" OpenControl="SharePoint.OpenXMLDocuments.4" />
<Mapping Key="ODC.Cube" Value="icodcc.gif" EditText="Microsoft Office Excel" OpenControl="SharePoint.OpenDocuments" />
<Mapping Key="ODC.Database" Value="icodcd.gif" EditText="Microsoft Office Excel" OpenControl="SharePoint.OpenDocuments" />
<Mapping Key="ODC.Table" Value="icodct.gif" EditText="Microsoft Office Excel" OpenControl="SharePoint.OpenDocuments" />
<Mapping Key="PowerPoint.Slide" Value="ichtmppt.gif" EditText="Microsoft Office PowerPoint" OpenControl="SharePoint.OpenDocuments" />
<Mapping Key="Publisher.Document" Value="ichtmpub.gif" EditText="Microsoft Office Publisher" OpenControl="SharePoint.OpenDocuments" />
<Mapping Key="SharePoint.WebPartPage.Document" Value="icsmrtpg.gif" EditText="Microsoft Office SharePoint Designer" OpenControl="SharePoint.OpenDocuments" />
<Mapping Key="Word.Document" Value="ichtmdoc.gif" EditText="Microsoft Office Word" OpenControl="SharePoint.OpenDocuments" />
<Mapping Key="XDocs.Document" Value="icxddoc.gif" EditText="Microsoft Office InfoPath" OpenControl="SharePoint.OpenXMLDocuments" />
<Mapping Key="SharePoint.Link" Value="DOCLINK.GIF" />
<Mapping Key="Honeycomb.Link" Value="honeycombdoc.gif" />
</ByProgID>
<ByExtension>
<Mapping Key="accdb" Value="icaccdb.gif" EditText="Microsoft Office Access" OpenControl="SharePoint.OpenDocuments" />
<Mapping Key="accdt" Value="icaccdb.gif" />
<Mapping Key="accdc" Value="icaccdb.gif" />
<Mapping Key="accde" Value="icaccde.gif" EditText="Microsoft Office Access" OpenControl="SharePoint.OpenDocuments" />
<Mapping Key="accdr" Value="icaccde.gif" EditText="Microsoft Office Access" OpenControl="SharePoint.OpenDocuments" />
<Mapping Key="asax" Value="icasax.gif" OpenControl="" />
<Mapping Key="ascx" Value="icascx.gif" EditText="Microsoft Office SharePoint Designer" OpenControl="SharePoint.OpenDocuments" />
<Mapping Key="asmx" Value="icasmx.gif" OpenControl="" />
<Mapping Key="asp" Value="ichtm.gif" OpenControl="" />
<Mapping Key="aspx" Value="ichtm.gif" EditText="Microsoft Office SharePoint Designer" OpenControl="SharePoint.OpenDocuments" />
<Mapping Key="bmp" Value="icbmp.gif" />
<Mapping Key="cat" Value="iccat.gif" OpenControl="" />
<Mapping Key="chm" Value="icchm.gif" OpenControl="" />
<Mapping Key="config" Value="icconfig.gif" OpenControl="" />
<Mapping Key="css" Value="iccss.gif" OpenControl="" />
<Mapping Key="db" Value="icdb.gif" OpenControl="" />
<Mapping Key="dib" Value="icdib.gif" />
<Mapping Key="disc" Value="icdisc.gif" OpenControl="" />
<Mapping Key="doc" Value="icdoc.gif" EditText="Microsoft Office Word" OpenControl="SharePoint.OpenDocuments" />
<Mapping Key="docm" Value="icdocx.gif" EditText="Microsoft Office Word" OpenControl="SharePoint.OpenDocuments" />
<Mapping Key="docx" Value="icdocx.gif" EditText="Microsoft Office Word" OpenControl="SharePoint.OpenDocuments" />
<Mapping Key="dot" Value="icdot.gif" EditText="Microsoft Office Word" OpenControl="SharePoint.OpenDocuments" />
<Mapping Key="dotm" Value="icdotx.gif" EditText="Microsoft Office Word" OpenControl="SharePoint.OpenDocuments" />
<Mapping Key="dotx" Value="icdotx.gif" EditText="Microsoft Office Word" OpenControl="SharePoint.OpenDocuments" />
<Mapping Key="dvd" Value="icdvd.gif" OpenControl="" />
<Mapping Key="dwp" Value="icdwp.gif" OpenControl="" />
<Mapping Key="dwt" Value="icdwt.gif" OpenControl="" />
<Mapping Key="eml" Value="iceml.gif" OpenControl="" />
<Mapping Key="est" Value="icest.gif" OpenControl="" />
<Mapping Key="fwp" Value="icfwp.gif" OpenControl="" />
<Mapping Key="gif" Value="icgif.gif" />
<Mapping Key="hlp" Value="ichlp.gif" OpenControl="" />
<Mapping Key="hta" Value="ichta.gif" OpenControl="" />
<Mapping Key="htm" Value="ichtm.gif" EditText="Microsoft Office SharePoint Designer" OpenControl="SharePoint.OpenDocuments" />
<Mapping Key="html" Value="ichtm.gif" EditText="Microsoft Office SharePoint Designer" OpenControl="SharePoint.OpenDocuments" />
<Mapping Key="htt" Value="ichtt.gif" OpenControl="" />
<Mapping Key="inf" Value="icinf.gif" />
<Mapping Key="ini" Value="icini.gif" />
<Mapping Key="jfif" Value="icjfif.gif" />
<Mapping Key="jpe" Value="icjpe.gif" />
<Mapping Key="jpeg" Value="icjpeg.gif" />
<Mapping Key="jpg" Value="icjpg.gif" />
<Mapping Key="js" Value="icjs.gif" OpenControl="" />
<Mapping Key="jse" Value="icjse.gif" OpenControl="" />
<Mapping Key="log" Value="iclog.gif" />
<Mapping Key="master" Value="icmaster.gif" EditText="Microsoft Office SharePoint Designer" OpenControl="SharePoint.OpenDocuments" />
<Mapping Key="mht" Value="icmht.gif" EditText="Microsoft Office Word" OpenControl="SharePoint.OpenDocuments" />
<Mapping Key="mhtml" Value="icmht.gif" EditText="Microsoft Office Word" OpenControl="SharePoint.OpenDocuments" />
<Mapping Key="mpd" Value="icmpd.gif" OpenControl="" />
<Mapping Key="mpp" Value="icmpp.gif" EditText="Microsoft Office Project" OpenControl="SharePoint.OpenDocuments" />
<Mapping Key="mps" Value="icmps.gif" OpenControl="" />
<Mapping Key="mpt" Value="icmpt.gif" EditText="Microsoft Office Project" OpenControl="SharePoint.OpenDocuments" />
<Mapping Key="mpw" Value="icmpw.gif" OpenControl="" />
<Mapping Key="mpx" Value="icmpx.gif" OpenControl="" />
<Mapping Key="msg" Value="icmsg.gif" OpenControl="" />
<Mapping Key="msi" Value="icmsi.gif" OpenControl="" />
<Mapping Key="msp" Value="icmsp.gif" OpenControl="" />
<Mapping Key="ocx" Value="icocx.gif" OpenControl="" />
<Mapping Key="odc" Value="icodc.gif" EditText="Microsoft Office Excel" OpenControl="SharePoint.OpenDocuments" />
<Mapping Key="one" Value="icone.gif" EditText="Microsoft Office OneNote" OpenControl="SharePoint.OpenDocuments" />
<Mapping Key="onepkg" Value="iconp.gif" EditText="Microsoft Office OneNote" OpenControl="SharePoint.OpenDocuments" />
<Mapping Key="onetoc2" Value="icont.gif" EditText="Microsoft Office OneNote" OpenControl="SharePoint.OpenDocuments" />
<Mapping Key="png" Value="icpng.gif" />
<Mapping Key="pot" Value="icpot.gif" EditText="Microsoft Office PowerPoint" OpenControl="SharePoint.OpenDocuments" />
<Mapping Key="potm" Value="icpotx.gif" EditText="Microsoft Office PowerPoint" OpenControl="SharePoint.OpenDocuments" />
<Mapping Key="potx" Value="icpotx.gif" EditText="Microsoft Office PowerPoint" OpenControl="SharePoint.OpenDocuments" />
<Mapping Key="ppt" Value="icppt.gif" EditText="Microsoft Office PowerPoint" OpenControl="SharePoint.OpenDocuments" />
<Mapping Key="pptm" Value="icpptx.gif" EditText="Microsoft Office PowerPoint" OpenControl="SharePoint.OpenDocuments" />
<Mapping Key="pptx" Value="icpptx.gif" EditText="Microsoft Office PowerPoint" OpenControl="SharePoint.OpenDocuments" />
<Mapping Key="pps" Value="icpps.gif" EditText="Microsoft Office PowerPoint" OpenControl="SharePoint.OpenDocuments" />
<Mapping Key="psp" Value="icpsp.gif" OpenControl="" />
<Mapping Key="psd" Value="icbmp.gif" />
<Mapping Key="ptm" Value="icptm.gif" OpenControl="" />
<Mapping Key="ptt" Value="icptt.gif" OpenControl="" />
<Mapping Key="pub" Value="icpub.gif" EditText="Microsoft Office Publisher" OpenControl="SharePoint.OpenDocuments" />
<Mapping Key="rtf" Value="icrtf.gif" />
<Mapping K开发者_如何转开发ey="stp" Value="icstp.gif" OpenControl="" />
<Mapping Key="stt" Value="icstt.gif" OpenControl="" />
<Mapping Key="tif" Value="ictif.gif" />
<Mapping Key="tiff" Value="ictiff.gif" />
<Mapping Key="txt" Value="ictxt.gif" />
<Mapping Key="vbe" Value="icvbe.gif" OpenControl="" />
<Mapping Key="vbs" Value="icvbs.gif" OpenControl="" />
<Mapping Key="vdx" Value="icvdx.gif" EditText="Microsoft Office Visio" OpenControl="SharePoint.OpenDocuments" />
<Mapping Key="vsd" Value="icvsd.gif" EditText="Microsoft Office Visio" OpenControl="SharePoint.OpenDocuments" />
<Mapping Key="vsl" Value="icvsl.gif" OpenControl="" />
<Mapping Key="vss" Value="icvss.gif" EditText="Microsoft Office Visio" OpenControl="SharePoint.OpenDocuments" />
<Mapping Key="vst" Value="icvst.gif" EditText="Microsoft Office Visio" OpenControl="SharePoint.OpenDocuments" />
<Mapping Key="vsu" Value="icvsu.gif" OpenControl="" />
<Mapping Key="vsw" Value="icvsw.gif" OpenControl="" />
<Mapping Key="vsx" Value="icvsx.gif" EditText="Microsoft Office Visio" OpenControl="SharePoint.OpenDocuments" />
<Mapping Key="vtx" Value="icvtx.gif" EditText="Microsoft Office Visio" OpenControl="SharePoint.OpenDocuments" />
<Mapping Key="webpart" Value="icdwp.gif" OpenControl="" />
<Mapping Key="wm" Value="icwm.gif" OpenControl="" />
<Mapping Key="wma" Value="icwma.gif" OpenControl="" />
<Mapping Key="wmd" Value="icwmd.gif" OpenControl="" />
<Mapping Key="wmp" Value="icwmp.gif" OpenControl="" />
<Mapping Key="wms" Value="icwms.gif" OpenControl="" />
<Mapping Key="wmv" Value="icwmv.gif" OpenControl="" />
<Mapping Key="wmx" Value="icwmx.gif" OpenControl="" />
<Mapping Key="wmz" Value="icwmz.gif" OpenControl="" />
<Mapping Key="wsf" Value="icwsf.gif" OpenControl="" />
<Mapping Key="xls" Value="icxls.gif" EditText="Microsoft Office Excel" OpenControl="SharePoint.OpenDocuments" />
<Mapping Key="xlsb" Value="icxlsx.gif" EditText="Microsoft Office Excel" OpenControl="SharePoint.OpenDocuments" />
<Mapping Key="xlsm" Value="icxlsx.gif" EditText="Microsoft Office Excel" OpenControl="SharePoint.OpenDocuments" />
<Mapping Key="xlsx" Value="icxlsx.gif" EditText="Microsoft Office Excel" OpenControl="SharePoint.OpenDocuments" />
<Mapping Key="xlt" Value="icxlt.gif" EditText="Microsoft Office Excel" OpenControl="SharePoint.OpenDocuments" />
<Mapping Key="xltb" Value="icxltx.gif" EditText="Microsoft Office Excel" OpenControl="SharePoint.OpenDocuments" />
<Mapping Key="xltm" Value="icxltx.gif" EditText="Microsoft Office Excel" OpenControl="SharePoint.OpenDocuments" />
<Mapping Key="xltx" Value="icxltx.gif" EditText="Microsoft Office Excel" OpenControl="SharePoint.OpenDocuments" />
<Mapping Key="xml" Value="icxml.gif" />
<Mapping Key="xps" Value="icxps.gif" OpenControl="" />
<Mapping Key="xsd" Value="icxsd.gif" />
<Mapping Key="xsl" Value="icxsl.gif" />
<Mapping Key="xsn" Value="icxsn.gif" EditText="Microsoft Office InfoPath" OpenControl="SharePoint.OpenXMLDocuments" />
<Mapping Key="xslt" Value="icxslt.gif" />
<Mapping Key="zip" Value="iczip.gif" OpenControl="" />
<Mapping Key="pdf" Value="icpdf.gif" />
<Mapping Key="rdl" Value="ReportServer\16doc_sp.gif" OpenControl="SharePoint.OpenRdlFiles" />
<Mapping Key="rsds" Value="ReportServer\datasource.gif" OpenControl="SharePoint.OpenRsdsFiles" />
<Mapping Key="smdl" Value="ReportServer\16model_sp.gif" OpenControl="SharePoint.OpenSmdlFiles" />
<Mapping Key="rsapplication" Value="ReportServer\newreport_sp.gif" OpenControl="SharePoint.OpenRdlbFiles" />
</ByExtension>
<Default>
<Mapping Value="icgen.gif" />
</Default>
</DocIcons>*
2nd edit
If I'm not wrong you want to remove the offendingnode from your input document. This what you can do if you want to use Select-Xml
:
$offendingnode = select-xml -xpath "/DocIcons/ByExtension/Mapping[@Key='pdf']" -xml $xmldoc
$xmldoc | select-xml -xpath "/DocIcons/ByExtension" | % {$_.node.removechild($offendingnode.node)}
1st edit
It's not very clear what you are going to do. Also what you are running is little messed.
With this line:
$xml | Select-Xml -XPath '//Mapping' | ForEach-Object{$_.Node.RemoveAll()}
You are going to remove all children of mapping
. If you want to remove all mapping
under ByExtension
you need something like
$xml | Select-Xml -XPath '//ByExtension' | % {$_.Node.RemoveAll()}
To print the result is better if you use:
$xml.outerxml
精彩评论