Search code examples
powershellxml-parsingpowershell-2.0

How to fetch an attribute value from xml using powershell?


I have a list of XML files, from which I have to get the string after a particular line.

In the files, I need to look for a tag Event and get the attribute value DLLRoutine. e.g. the tag would look something like below ...

<Event Definition="Validate" DLLPath="" DLLName="Helper.dll" DLLClass="HelpMain" 
       DLLRoutine="pgFeatureInfoOnValidate_WriteToRegSelectedFeatures" 
       InputParameters="pTreeViewFeatureTreeServerOS" RunOnce="no"/>

I just need to get Dllroutine values. How to do it using PowerShell?


Solution

  • Assuming your XML structure is something similar to:

    $xml = [xml]'
    <Events>
    <Event Definition="Validate" DLLPath="" DLLName="Helper.dll" DLLClass="HelpMain" DLLRoutine="pgFeatureInfoOnValidate_WriteToRegSelectedFeatures" InputParameters="pTreeViewFeatureTreeServerOS" RunOnce="no"/>
    <Event Definition="Validate1" DLLPath="" DLLName="Helper.dll1" DLLClass="HelpMain1" DLLRoutine="pgFeatureInfoOnValidate_WriteToRegSelectedFeatures" InputParameters="pTreeViewFeatureTreeServerOS" RunOnce="no"/>
    </Events>
    '
    
    #Or get it from a XML file
    $xml = [xml](Get-Content $XMLPath)
    
    $xml.Events.Event | Select DLLName