|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - Каким образом игнорировать и/ или удалить xmlns в заголовке xml |
|
PowerShell - Каким образом игнорировать и/ или удалить xmlns в заголовке xml
|
Ветеран Сообщения: 4553 |
Уважаемые, здравствуйте!
Задался вопросом из сабжа, т.к., по какой-то причине, эти заголовки не дают корректно распарсить *.xml с помощью .SelectNodes. Допустим, есть универсальный формат выгрузки в банк из 1с8: <?xml version="1.0" encoding="windows-1251"?> <СчетаПК xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://v8.1c.ru/edi/edi_stnd/109" xsi:type="СчетПК" ДатаФормирования="2025-01-29" НомерДоговора="11234567890" ДатаДоговора="2020-01-01" НаименованиеОрганизации="Муниципальное бюджетное общеобразовательное учреждение" ИНН="021001001" БИК="048073601" ИдПервичногоДокумента="8d1fbfe6-2cbd-11ef-958e-00155da20c00" НомерРеестра="5" ДатаРеестра="2024-02-05"> </СчетаПК>
Может кто-что дельное подскажет, т.к. Сам не понимаю, почему эти неймспейсы влияют на разбор файла. Например, вот такой простенький код получения даты и № договора без удаления этих неймспейсов не выводит ничего: |
|
Отправлено: 08:48, 29-01-2025 |
fascinating rhythm Сообщения: 6626
|
Профиль | Отправить PM | Цитировать Примерчик бы.
|
------- Отправлено: 09:20, 29-01-2025 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 4553
|
Профиль | Отправить PM | Цитировать В сети нашёл подсказку, что можно использовать:
, надо попробовать, главное не запутаться, т.к. это усложняет читаемость, т.е. теперь этот простой код выглядит так: [IO.Directory]::EnumerateFiles($PSScriptRoot,'*.xml') | foreach { gci $_|%{([xml](gc $_.fullname)).SelectNodes('//*[local-name()="СчетаПК"]')} | ForEach-Object {$_.НомерДоговора + " " + $_.ДатаДоговора} } Цитата DJ Mogarych:
|
|
Отправлено: 09:20, 29-01-2025 | #3 |
fascinating rhythm Сообщения: 6626
|
Профиль | Отправить PM | Цитировать |
------- Последний раз редактировалось DJ Mogarych, 29-01-2025 в 09:34. Отправлено: 09:25, 29-01-2025 | #4 |
Deadooshka Сообщения: 2517
|
Профиль | Отправить PM | Цитировать |
|
Отправлено: 09:30, 29-01-2025 | #5 |
Crazy Сообщения: 1218
|
Профиль | Отправить PM | Цитировать Цитата NickM:
1. 2. |
|
------- Отправлено: 11:07, 29-01-2025 | #6 |
Новый участник Сообщения: 17
|
|
Отправлено: 14:48, 29-01-2025 | #7 |
Ветеран Сообщения: 4553
|
Профиль | Отправить PM | Цитировать Всем спасибо!
Решил остановиться на этом и приступил к написанию не эффективного кода. Пытаюсь обойти кривую реализацию зарплатного проекта в 1с8 в централизованной бухгалтерии, когда буду выгружать кучу-сотни реестров в универсальном *.xml-формате, а после, с помощью powershell, конвертировать их в форматы трёх и более разных банков. Вроде что-то получается, но поделиться стесняюсь, код действительно ужасен. |
Отправлено: 16:33, 29-01-2025 | #8 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Разное - [решено] Каким образом можно удалить информацию о предыдущих сетевых подключениях? | hAUS | Microsoft Windows 7 | 10 | 02-03-2012 14:04 | |
Каким образом идет перенаправление | dzheka3d | Вебмастеру | 3 | 20-06-2011 14:00 | |
Каким образом Windows находит перемещенные папки("Папка была перемещена или удалена") | kefi | Microsoft Windows NT/2000/2003 | 3 | 26-03-2008 17:21 | |
Сменая вкладок. каким образом? | Netloger | Вебмастеру | 14 | 10-09-2007 16:33 | |
Люди нуждна помощь или совет и расскажите каким образом пост | 6rey | Сетевые технологии | 4 | 28-01-2004 15:37 |
|