From c8b950ff9b46b97c05c2591a85da813f5203f044 Mon Sep 17 00:00:00 2001 From: "Porter, Jesse" Date: Tue, 14 Mar 2017 17:51:28 -0600 Subject: [PATCH] Addressing issue #71, Tokenizer: Use SelectNodes instead of SelectSingleNode --- Tests/Tokenizer/tokenizer-ps3.tests.ps1 | 1 + Utilites/Tokenizer/tokenize-ps3.ps1 | 28 +++++++++++++------------ Utilites/Tokenizer/tokenize.ps1 | 21 +++++++++++-------- 3 files changed, 28 insertions(+), 22 deletions(-) diff --git a/Tests/Tokenizer/tokenizer-ps3.tests.ps1 b/Tests/Tokenizer/tokenizer-ps3.tests.ps1 index 1b717cf..a5993c2 100644 --- a/Tests/Tokenizer/tokenizer-ps3.tests.ps1 +++ b/Tests/Tokenizer/tokenizer-ps3.tests.ps1 @@ -100,6 +100,7 @@ Describe "Not set variables should not get replaced" { $env:INPUT_SOURCEPATH = $srcPath = Join-Path $env:TEMP 'source.txt' $env:INPUT_DESTINATIONPATH = $destPath = Join-Path $env:TEMP 'dest.txt' + $env:INPUT_REPLACEUNDEFINEDVALUESWITHEMPTY = $false $fooVal = "的I am foo的" $barVal = "的I am bar的" $secretVal = "I am secret" diff --git a/Utilites/Tokenizer/tokenize-ps3.ps1 b/Utilites/Tokenizer/tokenize-ps3.ps1 index 8b98d26..dea9d3b 100644 --- a/Utilites/Tokenizer/tokenize-ps3.ps1 +++ b/Utilites/Tokenizer/tokenize-ps3.ps1 @@ -70,22 +70,24 @@ try { if ($key.NamespaceUrl -And $key.NamespacePrefix) { $ns = New-Object System.Xml.XmlNamespaceManager($xmlraw.NameTable) $ns.AddNamespace($key.NamespacePrefix, $key.NamespaceUrl) - $node = $xmlraw.SelectSingleNode($key.KeyName, $ns) + $nodes = $xmlraw.SelectNodes($key.KeyName, $ns) } else { - $node = $xmlraw.SelectSingleNode($key.KeyName) + $nodes = $xmlraw.SelectNodes($key.KeyName) } - if ($node) { - try { - Write-Host "Updating $($key.Attribute) of $($key.KeyName): $($key.Value)" - $node.($key.Attribute) = $key.Value - } - catch { - Write-Error "Failure while updating $($key.Attribute) of $($key.KeyName): $($key.Value)" - } - } else { - Write-Verbose "'$($key.KeyName)' not found in source" - } + if ($nodes) { + foreach ($node in $nodes) { + try { + Write-Host "Updating $($key.Attribute) of $($key.KeyName): $($key.Value)" + $node.($key.Attribute) = $key.Value + } + catch { + Write-Error "Failure while updating $($key.Attribute) of $($key.KeyName): $($key.Value)" + } + } + } else { + Write-Verbose "'$($key.KeyName)' not found in source" + } } $xmlraw.Save($tempFile) } diff --git a/Utilites/Tokenizer/tokenize.ps1 b/Utilites/Tokenizer/tokenize.ps1 index 6036f82..ee872a3 100644 --- a/Utilites/Tokenizer/tokenize.ps1 +++ b/Utilites/Tokenizer/tokenize.ps1 @@ -72,18 +72,21 @@ if (($SourceIsXml) -and ($Configuration)) { if ($key.NamespaceUrl -And $key.NamespacePrefix) { $ns = New-Object System.Xml.XmlNamespaceManager($xmlraw.NameTable) $ns.AddNamespace($key.NamespacePrefix, $key.NamespaceUrl) - $node = $xmlraw.SelectSingleNode($key.KeyName, $ns) + $nodes = $xmlraw.SelectNodes($key.KeyName, $ns) } else { - $node = $xmlraw.SelectSingleNode($key.KeyName) + $nodes = $xmlraw.SelectNodes($key.KeyName) } - if ($node) { - try { - Write-Host "Updating $($key.Attribute) of $($key.KeyName): $($key.Value)" - $node.($key.Attribute) = $key.Value - } - catch { - Write-Error "Failure while updating $($key.Attribute) of $($key.KeyName): $($key.Value)" + if ($nodes) { + foreach ($node in $nodes) { + try { + Write-Host "Updating $($key.Attribute) of $($key.KeyName): $($key.Value)" + $node.($key.Attribute) = $key.Value + Write-Host "Updated $($key.Attribute) of $($key.KeyName): $($key.Value)" + } + catch { + Write-Error "Failure while updating $($key.Attribute) of $($key.KeyName): $($key.Value)" + } } } }