Pour le bénéfice des chercheurs, si vous avez une ligne supérieure de xml inclut le formatage (plutôt que d'entrer directement dans le nœud racine) les informations dont vous avez besoin pour supprimer la ligne supérieure avant de pouvoir la lancer
<?xml version="1.0" encoding="utf-8"?>
<Courses>
<CourseEntry Type="Mandatory" Name="Math"/>
<CourseEntry Type="Mandatory" Name="Coding" />
<CourseEntry Type="Optional" Name="Economics" />
<CourseEntry Type="Optional" Name="History" />
</Courses>
Nécessite:
$xmlFile = Get-Content "*.xml"
$xmlFileMinusFormatData = $xmlFile[1..($xmlFile.Length - 1)] #we need to remove the first line
$usableXml = [xml]$xmlFileMinusFormatData # Convert to xml for easy handling
$usableXml.Courses.CourseEntry.Count # just a count of rows
Je ne vois aucune erreur de cette ligne. Avez-vous déjà fortement typé la variable $ str ou quelque chose? Essayez de mettre le type avant la variable à (re) typer la variable: [xml] $ str = "" (ou [xml] $ str = [xml] "") – Jaykul
même ici. Cela fonctionne pour moi comme vous l'avez dactylographié ci-dessus. –
Était ancienne version PowerShell. – rickythefox