Имя пользователя:
Пароль:
 | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - [решено] Подскажите как получить текст расположенный между тегами

Ответить
Настройки темы
PowerShell - [решено] Подскажите как получить текст расположенный между тегами

Старожил


Сообщения: 169
Благодарности: 4

Профиль | Отправить PM | Цитировать


Здравствуйте,

Подскажите пожалуйста какими функциями воспользоваться, чтобы получить текст расположенный между тегами
Пример:
<signature>asdjkf05545jaskld5455451fjkljas564545kldjfkl;nmeje115787855ejegh</signature>

Отправлено: 12:17, 29-03-2013

 

(*.*)


Сообщения: 36574
Благодарности: 6710

Профиль | Сайт | Отправить PM | Цитировать


Цитата dark-------13:
Код: Выделить весь код
[xml]$text = Get-Content "C:\test\test.xml"
$text.clients.client
То выдает
ANKETA
------
1008
2055508 »
Угу, ведь вы не указали во второй строке кода узел anketa.

Еще раз вернемся к сообщению 7:
Код: Выделить весь код
[xml]$text = Get-Content C:\test\test.txt
$text.clients.client.anketa #вывод "как есть"
$text.clients.client.anketa.replace("`n","") #вывод в одну строку
На этом я прошу простить меня, но вы исчерпали мой запас терпения на два ближайших дня... Надеюсь, коллеги по форуму выведут вас из трех сосен.

-------
Канал Windows 11, etc | Чат @winsiders


Отправлено: 15:12, 30-03-2013 | #21



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Старожил


Сообщения: 169
Благодарности: 4

Профиль | Отправить PM | Цитировать


Применяю данный скрипт
Код: Выделить весь код
[xml]$text = Get-Content C:\test\test.xml 
$text.clients.client.anketa.replace("`n","")
ДЛЯ xml c содержимым

<?xml version="1.0" encoding="utf-8"?>
<CLIENTS>
<CLIENT>
<ANKETA>1008
sdjkjhdjfh
</ANKETA>
</CLIENT>
<CLIENT>
<ANKETA>2055508</ANKETA>
</CLIENT>
</CLIENTS>


Выдает ошибку:
Нельзя вызвать метод для выражения со значением NULL.
C:\test\1.ps1:2 знак:36
+ $text.clients.client.anketa.replace <<<< ("`n","")
+ CategoryInfo : InvalidOperation: (replace:String) [], RuntimeException
+ FullyQualifiedErrorId : InvokeMethodOnNull

Как должен выглядеть скрипт чтобы обработать xml документ данного типа и получить на выходе данные из двух тегов anketa в одном из которых значение 1008sdjkjhdjfh ,а во втором 2055508 !?

Отправлено: 15:25, 30-03-2013 | #22


Ветеран


Сообщения: 1259
Благодарности: 861

Профиль | Отправить PM | Цитировать


PS > $x.CLIENTS.CLIENT[0].ANKETA
1008
sdjkjhdjfh
PS > $x.CLIENTS.CLIENT[1].ANKETA
2055508
PS > $x.CLIENTS.CLIENT[0].ANKETA.replace("`n","")
1008 sdjkjhdjfh

Отправлено: 16:15, 30-03-2013 | #23


Старожил


Сообщения: 169
Благодарности: 4

Профиль | Отправить PM | Цитировать


Уважаемый Kazun спасибо за помощь, после вашей подсказки родился вот такой скрипт, вот только не пойму как сделать так, чтобы он закончил обрабатывать файл - после обработки всех строк из xml документа, количество строк может меняться после изменений вносимых в XML, и выгрузить результат работы скрипта в файл ..... ?
Код: Выделить весь код
[xml]$text = Get-Content "D:\base64\obr.xml"
$a="<img src=""data:image/png;base64,"
$b=""" />" 
$s=1
while ($s -le 175){
    
    for ($i = 1; $i -le 1 ;$i++){write $a; 
    $text.clients.client[$s].portrait;
    write $b;
    
        }  
     $s++
}

Последний раз редактировалось dark-------13, 30-03-2013 в 18:58.


Отправлено: 18:50, 30-03-2013 | #24


Ветеран


Сообщения: 1259
Благодарности: 861

Профиль | Отправить PM | Цитировать


[xml]$text = Get-Content "D:\base64\obr.xml"
$text.CLIENTS.client | Foreach {"<img src=""data:image/png;base64," + $_.portrait + """ />" } | Out-File result.txt
Это сообщение посчитали полезным следующие участники:

Отправлено: 19:15, 30-03-2013 | #25



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - [решено] Подскажите как получить текст расположенный между тегами

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[решено] Как получить текст того элемента, что находится в фокусе?? Romanka AutoIt 8 04-07-2011 16:25
CMD/BAT - [решено] Подскажите как получить время изменения файла -15 минут osp2008 Скриптовые языки администрирования Windows 7 29-07-2010 15:04
PHP|Кол-во строк между выбранными тегами morgan1991 Вебмастеру 0 17-03-2010 22:06
Как получить текст из textarea которую заменяет FCKeditor? EGORR_TOO Вебмастеру 2 13-09-2009 14:26
Регулярное выражение: вырезать данные между тегами venuko Вебмастеру 6 04-06-2009 16:59




 
Переход