Mijn vraag
Ik heb onderstaande XML structuur. Helaas loop ik vast bij het zoeken van een veld als deze meerdere keren voorkomt. Specifieke waardes lukken mij wel maar dit dus niet.
Relevante software en hardware die ik gebruik
Powershell 4.0
Wat ik al gevonden of geprobeerd heb
Met deze code krijg ik prima velden in mijn vars, maar helaas gaat dat niet op bij de xml structuur welke ik nu heb.
Wat ik dus graag wil doen is, bij configparameter dhcp de waarde disabled van onderliggende par_enum_option_selected ophalen.
Dit heb ik geprobeerd met de onderstaande code maar dat werkt helaas niet
De gehele xml is z'n 800 regels en er zijn nog veel meer configParameter regels met par_enum_option_selected & par_string elementen. Maar elke configParameter heeft wel een unieke name attribute
Ik krijg de volgende error:
Ik heb onderstaande XML structuur. Helaas loop ik vast bij het zoeken van een veld als deze meerdere keren voorkomt. Specifieke waardes lukken mij wel maar dit dus niet.
XML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
| <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <?xml-stylesheet type="text/xsl" href="/admin/gui.xsl"?> <basic> <parameterPage name="netstart" description="Network"> <configParameter name="requirenetwork" description="Require network connection"> <par_enum name="requirenetwork"> <par_enum_option_selected VALUE="1">Yes</par_enum_option_selected> <par_enum_option VALUE="0">No</par_enum_option> </par_enum> <par_retrieve name="requirenetwork" default="1" last="1"/> </configParameter> <configParameter name="dhcp" description="DHCP"> <par_enum name="dhcp"> <par_enum_option VALUE="1">Enabled</par_enum_option> <par_enum_option_selected VALUE="0">Disabled</par_enum_option_selected> </par_enum> <par_retrieve name="dhcp" default="0" last="0"/> </configParameter> <configParameter name="ipaddress" description="IP address"> <par_string name="ipaddress">10.30.168.51</par_string> <par_retrieve name="ipaddress" default="0.0.0.0" last="10.30.168.51"/> </configParameter> </basic> |
Relevante software en hardware die ik gebruik
Powershell 4.0
Wat ik al gevonden of geprobeerd heb
Met deze code krijg ik prima velden in mijn vars, maar helaas gaat dat niet op bij de xml structuur welke ik nu heb.
code:
1
2
3
4
| [xml]$XmlDocument = Get-Content "$mapnaam\temp.xml" $global:IP = $XmlDocument.info.addr $global:subnet = $XmlDocument.info.mask $global:gateway = $XmlDocument.info.gw |
Wat ik dus graag wil doen is, bij configparameter dhcp de waarde disabled van onderliggende par_enum_option_selected ophalen.
Dit heb ik geprobeerd met de onderstaande code maar dat werkt helaas niet
code:
1
2
| $DeNode = ($XmlDocument.basic.parameterPage.configParameter | Where $_.name -eq "dhcp") $global:DHCP = $DeNode.par_enum.par_enum_option_selected |
De gehele xml is z'n 800 regels en er zijn nog veel meer configParameter regels met par_enum_option_selected & par_string elementen. Maar elke configParameter heeft wel een unieke name attribute
Ik krijg de volgende error:
code:
1
2
3
4
5
| Where-Object : Cannot validate argument on parameter 'Property'. The argument is null or empty. Provide an argument that is not null or empty, and then try the command again. + ... lDocument.basic.parameterPage.configParameter | Where $_.name -eq "dh ... + ~~~~~~~ + CategoryInfo : InvalidData: (:) [Where-Object], ParameterBindingValidationException + FullyQualifiedErrorId : ParameterArgumentValidationError,Microsoft.PowerShell.Commands.WhereObjectCommand |
[ Voor 11% gewijzigd door The-Source op 07-08-2019 09:20 . Reden: toevoeging error code ]
Taal fouten inbegrepen ;)
Mijn AI Art YouTube kanaal