Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Удалить одну фразу (кодировка файла UTF-8) (http://forum.oszone.net/showthread.php?t=224297)

njg 03-01-2012 08:12 1827320

Удалить одну фразу (кодировка файла UTF-8)
 
Вложений: 1
Прощу помощи. Нужно найти фразу в исходном файле и удалить её. Файл в UTF-8. Как не пытаюсь, все кодировку нарушаю.
Файл прикрепил. Нужно убрать фразу "Для разблокировки проведите пальцем по экрану".
Можно на VBS.

Также подскажите как можно менять фразу на другую, вдруг пригодиться...

Iska 03-01-2012 19:55 1827678

njg, попробуйте так:
Код:

Option Explicit

Dim strPath2XML
Dim objXMLDOMNode

With WScript.CreateObject("Msxml2.DOMDocument")
        .async = False
        .setProperty "SelectionLanguage", "XPath"
       
        strPath2XML = "E:\Песочница\0023"
       
        If .load(strPath2XML & "\strings.xml") Then
                For Each objXMLDOMNode In .selectNodes("*/string[. = 'Для разблокировки проведите пальцем по экрану']")
                        objXMLDOMNode.removeChild objXMLDOMNode.firstChild
                Next
               
                .save strPath2XML & "\strings2.xml"
        End If
End With

WScript.Quit 0


Foreigner 03-01-2012 20:35 1827703

Вариант с POSH:
Код:

$xmlfile = gi ".\strings.xml"

$xml = new-object xml
$xml.load($xmlfile.fullname)
$xml.resources.string | ? { $_.name -match "lockscreen_unlock_guide_text" } | % { $_."#text" = '' }
$xml.save($xmlfile.fullname)


Kazun 03-01-2012 21:04 1827720

Вариант с Posh:

Код:

(gc strings.xml -enc utf8) -notmatch 'Для разблокировки проведите пальцем по экрану' | out-file result.xml -enc utf8

Foreigner 03-01-2012 21:18 1827726

Kazun, так наверное удалится вся строка, а не "фраза"

Kazun 03-01-2012 21:27 1827733

Foreigner,замените на replace в чем проблема.

njg 04-01-2012 00:27 1827874

Iska, ваш вариант мне понравился, простой и без доп. компонентов. Но только он не работает. Вернее коверкает исходный файл. Некоторые теги были изменены и пропал закрывающий тег за вырезанной фразой.
А нельзя ли на VBS пробежаться по xml файлу как по обычному тексту у вырезать лишнее?

Iska 04-01-2012 03:15 1827973

njg, у меня получается результирующий файл следующего вида:

* в нём приведены к стандарту XML некоторые некорректные тэги (наличествующие символы «>» в тексте заменены на соответствующие коды);

* тэг:
Код:

    <string name="lockscreen_unlock_guide_text">Для разблокировки проведите пальцем по экрану</string>
после удаления текста выглядит так:
Код:

        <string name="lockscreen_unlock_guide_text"/>
— это никак не «пропадание закрывающего тэга», а стандартный для XML способ;

* отступы-пробелы заменены на табуляцию.

Результирующий файл проходит проверку на валидность в XML Validator. Что не так?

njg 05-01-2012 04:49 1828651

Спасибо! Вставил пропатченный файл в прошивку, прошил телефон, все работает как нужно :)


Время: 08:48.

Время: 08:48.
© OSzone.net 2001-