powered by simpleCommunicator - 2.0.35     © 2025 Programmizd 02
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Удаление всего из XML кроме
6 сообщений из 6, страница 1 из 1
Удаление всего из XML кроме
    #39939207
grishanefo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!

Помогите пожалуйста с решением задачи

Есть XML файл ~2.5 гига, NotePad++, excel и т.д. не тянут такой объем.
Решил запихнуть его в linux, там то он хоть открывается на просмотр.
Из всего мне нужны данные только из одного тега: ClientID

Пример:
Код: xml
1.
2.
3.
4.
5.
[/SRC]<ClientData>
<ExtentedClientData><ClientID>234</ClientID><Address>abc</Address><City>Москва</City></ExtentedClientData>
<ExtentedClientData><ClientID>777</ClientID><Address>cde</Address><City>Москва</City></ExtentedClientData>
<ExtentedClientData><ClientID>678</ClientID><Address>cde</Address><City>Москва</City></ExtentedClientData>
</ClientData>[SRC XML]




На выходе нужно:
234
777
678


Может через SED?


p.s.
<ExtentedClientData></ExtentedClientData> около 2.5 млн


Спасибро!
...
Рейтинг: 0 / 0
Удаление всего из XML кроме
    #39939239
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
grishanefoМожет через SED?

Можно и через sed. И уж точно для получения этих данных не нужен редактор. Мог бы остаться
на Windows и использовать findstr.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Удаление всего из XML кроме
    #39939383
grishanefo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажи плиз как это сделать?
...
Рейтинг: 0 / 0
Удаление всего из XML кроме
    #39939657
Фотография OoCc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
grishanefo

если нужно делать выборку по XPath выражению :
Код: sql
1.
man xml_grep
...
Рейтинг: 0 / 0
Удаление всего из XML кроме
    #39939734
Фотография volodin661
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: powershell
1.
query -s:myfile.xml -qs://ClientID !method=text



где query.exe - это утилита ком. строки с сайта Saxonica ( Майкл Кэй ),
реализующая спецификацию языка xquery под версию .NET,
которую можно скачать бесплатно с https://sourceforge.net/projects/saxon/files/Saxon-HE/9.9/SaxonHE9-9-1-7N-setup.exe/download

На сайте Saxonica для особо любопытных есть и документация
https://www.saxonica.com/documentation9.9/documentation.xml
...
Рейтинг: 0 / 0
Удаление всего из XML кроме
    #39940250
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть такая штука

Код: powershell
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
$ xml
XMLStarlet Toolkit: Command line utilities for XML
Usage: /snap/xmlstarlet/85/bin/xml [<options>] <command> [<cmd-options>]
where <command> is one of:
  ed    (or edit)      - Edit/Update XML document(s)
  sel   (or select)    - Select data or query XML document(s) (XPATH, etc)
  tr    (or transform) - Transform XML document(s) using XSLT
  val   (or validate)  - Validate XML document(s) (well-formed/DTD/XSD/RelaxNG)
  fo    (or format)    - Format XML document(s)
  el    (or elements)  - Display element structure of XML document
  c14n  (or canonic)   - XML canonicalization
  ls    (or list)      - List directory as XML
  esc   (or escape)    - Escape special XML characters
  unesc (or unescape)  - Unescape special XML characters
  pyx   (or xmln)      - Convert XML into PYX format (based on ESIS - ISO 8879)
  p2x   (or depyx)     - Convert PYX into XML
<options> are:
  -q or --quiet        - no error output
  --doc-namespace      - extract namespace bindings from input doc (default)
  --no-doc-namespace   - don't extract namespace bindings from input doc
  --version            - show version
  --help               - show help
Wherever file name mentioned in command help it is assumed
that URL can be used instead as well.



Она может извлекать информацию из документов. Трансформировать и многое другое.
Для твоего случая надо написать query на языке xpath/xslt

я плохо помню этот язык но для твоего случая query может выглядеть так

Код: sql
1.
2.
apply-template ='..../ClientData/ClientID'
  value-of = "@*"
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / Удаление всего из XML кроме
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]