Я создал скрипт powershell для редактирования нескольких XML-файлов в папке, он будет редактировать только узел "description", но по какой-то причине окончательный результат заключается в том, что '
сущность стала нормальной '
а узел "cloneof" разделен на две строки.
Get-ChildItem .\ *.xml -recurse | % {
echo "Editing file" $_.Name
$xml = [xml](Get-Content $_.fullname)
$xml.SelectNodes("//description") | ForEach-Object {
$string = $_.InnerText
if ($string -like "*(*") {
$string = $string.substring(0, $string.Indexof("(")-1)
if ($string -like '*,*')
{
$article = $string.Substring($string.LastIndexOf(','))
if ([string]$article -eq ", The") {
$string = $article.Substring(2) + " " + $string.Substring(0, $string.LastIndexOf(","))
}
elseif ([string]$article -eq ", A") {
$string = $article.Substring(2) + " " + $string.Substring(0, $string.LastIndexOf(","))
}
elseif ([string]$article -eq ", L'") {
$string = $article.Substring(2) + $string.Substring(0, $string.LastIndexOf(","))
}
elseif ([string]$article -like "*-*") {
$string = $article.Substring(2, $article.IndexOf("-")-2) + $string.Substring(0, $string.LastIndexOf(",")) + $article.substring($article.IndexOf("-")-1)
}
else {
echo "No article renaming needed for:"
echo $article
echo $string
}
}
}
$_.'#text' = $string
}
$xml.save($_.FullName)
}
некоторые идеи? теоретически остальная часть файла останется нетронутой, верно?
XML полон разделов, как этот оригинальный XML
<game name="Addams Family, The - Pugsley's Scavenger Hunt (USA)" index="" image="">
<description>Addams Family, The - Pugsley's Scavenger Hunt (USA)</description>
<cloneof></cloneof>
<crc>6B8D777D</crc>
<manufacturer>Ocean</manufacturer>
<year>1993</year>
<genre>Platform</genre>
<rating>Other - NR (Not Rated)</rating>
<enabled>Yes</enabled>
</game>
EDITED XML
<game name="Addams Family, The - Pugsley's Scavenger Hunt (USA)" index="" image="">
<description>The Addams Family - Pugsley's Scavenger Hunt</description>
<cloneof>
</cloneof>
<crc>6B8D777D</crc>
<manufacturer>Ocean</manufacturer>
<year>1993</year>
<genre>Platform</genre>
<rating>Other - NR (Not Rated)</rating>
<enabled>Yes</enabled>