LINUX.ORG.RU

10
Всего сообщений: 186

Scrollview

Как отключить scrollview в navigation drawer

 , , ,

gol_alex ()

Сравнить XML

Требуется написать скрипт (на внутрикорпоративном скриптовом языке) для сравнения 2 файлов данных в формате XML и вывода списка различий. Есть API для работы с XML, где есть функции GetRootElement, GetFirstChild, GetNextSibling, GetFirstChildByName, GetNextSiblingByName, GetParent, GetElementTag, GetAttributesCount, GetAttributeByName, GetAttributeByIndex и т.д.

Проблема в следующем. Файлы следует считать одинаковыми, если они отличаются только порядком атрибутов внутри тегов или порядком элементов на одном уровне иерархии.

Вопрос: как лучше сравнивать?

Я сделал следующее.
Для сравнения атрибутов в паре элементов:

  • перебрать все атрибуты в 1-м теге, для каждого искать совпадающие во 2-м теге;
  • перебрать все атрибуты во 2-м теге, проверить, что каждый есть в 1-м.

Для проверки равенства пары элементов из 2 файлов:

  • сравнить тег;
  • сравнить атрибуты;
  • составить 2 списка детей;
  • сравнить число детей;
  • рекурсивно сравнивать каждого из детей из 1-го файла с каждым из детей из 2-го файла, отмечая в списках совпадающих; исключать из дальнейшего сравнения тех, для кого нашлась пара.

Для сравнения файлов:

  • взять корневые элементы и рекурсивно сравнить.

Как-то оптимизировать можно?

Ответ: Сканировать файл (обход дерева в глубину или ширину), собрать все возможные пути (xpath) в список, сортировать, сравнить. При этом атрибуты каждого узла также сортируются и добавляются в соответствующее место пути. Код сократился почти втрое.

 

olegd ()

А чем вы XML акты генерируете

Наверняка тут есть упоротые предприниматели типа меня?

Я пользуюсь онлайн бухгалтерией, она мне акты ток в PDF выплевывает, а для нормальной работы ЭДО и формализации надо генерировать XML'ки.

Перед тем как я потрачу 3 часа на создание скрипта генерации этой адской 1С-Стайл XMLки, может кто-то уже что-то подобное делал и юзает? Или онлайн сервис знает, где вбить обе стороны и услуги и получить XML на выходе?

 ,

BaBL ()

Ищу формат для древовидных/иерархических конфигов

Собственно понадобились древовидных/иерархических конфиги для написания людьми. Такой себе DSL. Человек пишет декларативный конфиг - прога его обрабатывает и выдаёт результат.

Требования:

  1. Минимальное количество синтаксического шума.
  2. Коментарии.
  3. Многострочный текст.
  4. Иерархичность.
  5. Популярный формат, чтобы либа была для любого языка.

Что имеем:

  • YAML

    Самый очевидный выбор. Но провозившись с ним неделю - я возненавидел его. Он до безобразия переусложнён и не очевиден. Я до сих пор не могу предугадать как мой конфиг будет распарсен - это провал. Я даже пытался написать простенький парсер, чтобы лучше понять его. Но только больше запутался.

  • XML

    Тот случай, когда дедушка XML подходит лучше всего. Но хотелось бы что-то более простое.

  • JSON

    Не подходит по всем параметрам. Не для людей.

  • JSON5

    Ближе всего к идеалу, но малораспространён.

  • TOML

    Всем хорош, но не древовидный (да, если костыль, но это тихий ужас).

Есть идеи?

PS: шутки про s-expressions не интересны

 , ,

RazrFalcon ()

Apache и необычный POST-запрос

Доброго времени суток, есть спец железка - счетчик посетителей. Она может слать post запросы с данными на сервак, вот такого вида:

POST  HTTP/1.1
Host: 192.168.dd.dd:9000
Content-Length: 577
Connection: Keep-Alive

<?xml version="1.0"?>
<RealTimeMetrics  SiteId="Site ID">
// ...
</RealTimeMetrics>

Но апач чет не хочет принимать такой запрос,отвечая на него 400 Bad Request. Я так полагаю что сам запрос не соовтетсвует стандарту HTTP1.1 и придется мутить свою софтину, которая будет принимать такие запросы. Или может можно обойтись малой кровью и настроить apache 2.4.49 на прием таких запросов?

Если ошибся темой, господа модеры перекиньте куда надо.

 ,

jo_b1ack ()

Как удалить все invalid characters из xml файлов?

Есть директория с UTF-8 файлами SC_TASK_0.xml SC_TASK_1.xml …. SC_TASK_50.xml

Необходимо написать скрипт, который будет удалять из файлов в директории все invalid characters. Пока встретился только Invalid character (Unicode: 0xB) .

Пример проблемного кусочка xml: https://pastebin.com/N6HBCDXe

Проблема в символе VT - Vertical tab.

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

 , , ,

xakon ()

Как удалить часть текста между двумя тегами в xml?

Собственно сабж. Количество символов между тегами worklog /worklog может превышать 134217728, необходимо написать скрипт, который удалит из набора XML файлов все остальные символы>134217728, но до закрывающего тега /worklog.

Если очень упростить, что-то вроде «worklog text /worklog» заменить на

«worklog shell_substring_equivalent(text,0,134217728) /worklog»

Пример XML: https://pastebin.com/3cgpp3G7

 , , , ,

xakon ()

ищу потоковый парсер для больших xml для использования в bash

xpath из libxml-xpath-perl не подходит, так как ловлю out of memory.

Задача - найти элементы с определенными параметрами и вывести их.

 , ,

Tanger ()

Экспорт бд из sqlite в xml

всем привет!
А есть какой-нибудь инструмент для экспорта данных БД sqlite в xml? Желательно, консольный.
Спасибо.

 , ,

Aborigen1020 ()

Подскажите XML редактор в Slackware (32bit only)

Такой, чтобы мог загрузить неформатированый XML, а потом сам бы в нем ноды все с отступами отрисовал.

 , ,

senglory ()

Как содать вот такой тег в IDE Qt 5.13

Всем добрый день.

Есть вот такой xml-тег:

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE dmodule  [
      <!ENTITY ICN-C0419-S1000D0379-001-01 SYSTEM "ICN-C0419-S1000D0379-001-01.CGM" NDATA cgm >
      <!ENTITY ICN-C0419-S1000D0380-001-01 SYSTEM "ICN-C0419-S1000D0380-001-01.CGM" NDATA cgm >
      <!ENTITY ICN-C0419-S1000D0381-001-01 SYSTEM "ICN-C0419-S1000D0381-001-01.CGM" NDATA cgm >
      <!NOTATION cgm PUBLIC "-//USA-DOD//NOTATION Computer Graphics Metafile//EN" >
    ]>

Как вставить первый тег

    <?xml version="1.0" encoding="UTF-8"?>

я знаю и делаю это вот так

    QDomDocument doc(descrname);
        doc.appendChild(doc.createProcessingInstruction("xml", "version=\"1.0\" encoding=\"UTF-8\""));

Но как получить следующий тег? Ведь он, по факту является составным, судя из наполнения. Так как направление для меня новое, то не совсем понятно в какую сторону двигаться. На просторах Интернета не нашел примера, который бы хотя бы отдаленно показывал как это делать. По сему прошу помощи!

 ,

Intruder81 ()

Работа с текстом: выбор инструментов

Представим, на минутку, что у нас есть очень-очень много текста в виде кучи xml файлов средней степени сложности с юникодом. Очень-очень много это от 500Гб и до 10Тб и над ним надо делать кучу всего, поиск слов, выдергивание каких-то тегов, скармливание всего этого каким-то алгоритмам и т.д.. Сейчас над этим пыхтит питон, но пыхтит плохо, очень медленно, в один поток, пыхтит сутками. Надо эту штуку ускорять и уменьшать аппетиты в потреблении памяти. Какие другие более быстрые и кросс платформенные языки с хорошими библиотеками/фреймворками, заточенными под работу с юникодом и xml вы бы выбрали и почему? Кресты такое себе, там и разработка очень медленная и баги легко делаются, да и с юникодом работа через пятую точку.

PS

Интересно, чем поисковики пользуются, у них по идее похожая задача, только html ещё хуже xml.

 

peregrine ()

import в python для работы с html

имеется несколько html файлов по которым нужно пройти, найти все <a href=«#...»> элементы и заменить на <a href=«file.html#...»>. посоветуйте какой модуль следует использовать.

 , , , ,

scripthacker ()

fias.nalog.ru

Есть тут кто там работает?
Что за недопогроммистов туда понабирали?

$ sqlite3-dbf NORDOC16.DBF | iconv -f cp866 -t utf8 | grep 38b6e884-fda8-41a4-a155-015824968a09
INSERT INTO nordoc16 VALUES('38b6e884-fda8-41a4-a155-015824968a09','Об утверждении Перечня адресов объектов адресации, необходимых изменений и дополнений для внесения сведений в Федеральную информационную адресную систему по результатам инвентаризации объектов адресации, расположенных на территории Зеленорощинского с','2019-08-01','44','8','');

$ cat AS_NORMDOC_20190805_8414c6f1-d8d2-4a28-bd17-09054235185e.XML | tr '\>' '\n' | grep 38b6e884-fda8-41a4-a155-015824968a09
<NormativeDocument NORMDOCID="38b6e884-fda8-41a4-a155-015824968a09" DOCNAME="Об утверждении Перечня адресов объектов адресации, необходимых изменений и дополнений для внесения сведений в Федеральную информационную адресную систему по результатам инвентаризации объектов адресации, расположенных на территории Зеленорощинского сельского поселения Бугульминского муниципального района Республики Татарстан" DOCDATE="2019-08-01" DOCNUM="44" DOCTYPE="8" /

 , , , ,

superuser ()

Можно ли в xpath получить атрибут тега без названия самого атрибута в выдаче?

Доброе утро. Помогите, голова не варит и гугл сегодня не в духе.

'(//a/text())[last()]'

выдаёт

lasttext

и

'(//a[@href])[last()]'

выдаёт

<a href="lastelem/">lasttext</a>

далее

'(//a/@href)[last()]'

выдаёт

 href="lastelem/"

Я хочу, чтобы оно тут в последнем примере превратилось просто в «lastelem/», это можно сделать? Мне нужно только содержимое атрибута последнего элемента на странице или хотя бы без пробелов в начале строки.

 , , , ,

linuxnewbie ()

Проблема с xml macros для мыши Razer

Предоставляю часть макроса. Его суть состоит в том, чтобы сопутствовать упрощению контроля прицела на мыше Razer. Интересует усовершенствование данного макроса, для более точного контроля. Возможно использование других значений или методик для достижения той же цели. Еще наглядный пример как выглядеть он в самой программе: Сюда!

<?xml version="1.0" encoding="utf-8"?>
<Macro xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Name>Test</Name>
  <Guid>919191b2-fa7a-4b7c-b475-83febe612615</Guid>
  <MacroEvents>
    <MacroEvent>
      <Type>3</Type>
      <MouseMovement>
        <MouseMovementEvent>
          <Type>3</Type>
          <X>971</X>
          <Y>250</Y>
        </MouseMovementEvent>
        <MouseMovementEvent>
          <Type>3</Type>
          <X>966</X>
          <Y>260</Y>
        </MouseMovementEvent>
        <MouseMovementEvent>
          <Type>3</Type>
          <X>961</X>
          <Y>269</Y>
        </MouseMovementEvent>
        <MouseMovementEvent>
          <Type>3</Type>
          <X>956</X>
          <Y>275</Y>
        </MouseMovementEvent>
        <MouseMovementEvent>
          <Type>3</Type>
          <X>953</X>
          <Y>281</Y>
        </MouseMovementEvent>
        <MouseMovementEvent>
          <Type>3</Type>
          <X>949</X>
          <Y>288</Y>
        </MouseMovementEvent>
        <MouseMovementEvent>
          <Type>3</Type>
          <X>946</X>
          <Y>294</Y>
 </MouseMovementEvent>
      </MouseMovement>
    </MacroEvent>
  </MacroEvents>
</Macro>

 , ,

SysError ()

Чем поредактировать xml на колене в шел?

Хотелось бы уметь произвести простенькие замены на основе xpath/xquery выражений в однострочниках. Что-то вроде sed для xml в общем.

 , , , ,

pon4ik ()

Помогите составить запрос XPath

Прошу помочь составить запрос XPath (я полный новичок в этом вопросе).

Имеется вот такой xml файл с данными:

<Workbook>
 <Worksheet>
  <Table>
   <Row>
    <Cell><Data>65.00</Data><NamedCell Name="BidUSD"/></Cell>
    <Cell><Data>68.00</Data><NamedCell Name="OfferUSD"/></Cell>
   </Row>
  </Table>
 </Worksheet>
</Workbook>

Мне нужно с помощью XPath вытащить значения из тега Data, обращаясь по имени BidUSD или OfferUSD.

 ,

rbuilder ()

не открываются файлы .xml

если в корень положить любой файл .xml он не открывается, ошибка 404, sitemap.xml открывается, прописали с саппорта хостинга это в .htaccess - #RewriteRule ^(.*)$ /index.php/$1 [L], файлы стали открываться! но сайт не открывается, хостинг timeweb, imagecms....Сильно не «пинайте»...новенький в этом деле...Спасибо!

сам .htaccess

AddDefaultCharset UTF-8

Options +FollowSymLinks Options -Indexes

RewriteEngine on

# RewriteCond %{HTTP_HOST} ^http://www.site.com$ [NC] # RewriteRule ^(.*)$ http://site.com/$1 [L,R=301]

<ifModule pagespeed_module> Modpagespeed off </ifModule>

#apache2ctl -M && sudo a2enmod expires && sudo service apache2 restart (to enable mod_expires on ubuntu) <IfModule mod_expires.c> ExpiresActive On ExpiresDefault «access 7 days» ExpiresByType image/gif «access plus 1 year» ExpiresByType image/jpeg «access plus 1 year» ExpiresByType image/png «access plus 1 year» ExpiresByType image/jpg «access plus 1 year» ExpiresByType image/x-icon «access 1 year» ExpiresByType application/x-shockwave-flash «access 1 year» ExpiresByType application/javascript «access 1 year» ExpiresByType application/x-javascript «access 1 year» ExpiresByType text/css «access 1 year» ExpiresByType text/html «access 1 year» </IfModule>

RewriteRule ^(.*)\.tpl$ [R=404] RewriteRule ^(.*)backups(.*)\.zip$ [R=404]

RewriteCond $1 !^(index\.php|assets/.*|uploads/.*|application/third_party/(tinymce|filemanager|studio-42).*|favicon\.ico|favicon\.png|captcha/.*|application/.*/templates|application/.*/assets/js|application/.*/assets/css|application/.*/assets/images|CHANGELOG.xml|templates|js|application/modules/update/UpdateService.wsdl) RewriteRule ^(.*)$ /index.php/$1 [L]

#################################### # or # RewriteRule ^(.+)$ index.php?$1 [L] # or # RewriteRule ^(.*)$ /index.php?/$1 [L,QSA]

 

iGOR4577 ()

Добавление спецсимволов в QDomText

Доброе утро, ЛОР.

Имеется в наличии упоротый XML-файл с контактами (Родина дала им RFC 6351, но нет, надо извратиться — впрочем, это тема отдельная), в котором внутри одного элемента многострочный текст. Типа:

<contact>BEGIN:VCARD&#13;
VERSION:3.0&#13;
PRODID:-//Apple Inc.//iOS 9.2//EN&#13;
FN:John Smith&#13;
END:VCARD&#13;
</contact>

Т.е., как я понимаю, классическая виндовая пара возврат каретки - перевод строки. Перевод строки таким и остаётся, а возврат кодируется кодом с амперсендом.

Парсить это я научился, не вопрос. Теперь стоит задача генерировать такое средствами Qt. Как затащить в QDomText такой текст с разделителями? Амперсанд он заменяет на &amp; что логично. Если же написать join(«\r\n»), то в коде это вырождается в &#xd;

 , ,

hobbit ()