Анализ на XML с PHP

Дискусията в 'Web Development' стартирана от stuklen, Апр 27, 2018.

Тагове:
  1. stuklen

    stuklen Well-Known Member

    Рег.:
    Ноем 23, 2010
    Съобщения:
    1,180
    Харесвания:
    111
    Точки:
    63
    Пол:
    Мъж
    Професия:
    уеб разработки
    Място:
    Габрово
    Здравейте,
    Малко съм запенвал с обработката на един xml и ми трябва малко помощ да го измислим.
    Става въпрос за анализ на структурата на xml -a и екстрактване на данните в масив.

    Ще дам повече разяснения на ЛС или Skype
     
  2. Sky

    Sky Well-Known Member

    Рег.:
    Юли 29, 2012
    Съобщения:
    8,825
    Харесвания:
    651
    Точки:
    113
    Пол:
    Мъж
    Място:
    Стара Загора
    Дай тук направо да помагаме, ако пък не може публично прати на ЛС
     
  3. stuklen

    stuklen Well-Known Member

    Рег.:
    Ноем 23, 2010
    Съобщения:
    1,180
    Харесвания:
    111
    Точки:
    63
    Пол:
    Мъж
    Професия:
    уеб разработки
    Място:
    Габрово
    Не става въпрос за конкретен XML идеята е да стане по-универсално и да може да се изважда структурата на всякакъв вид.
    Пример: Има един xml и да се извадят възможните xpath

    Код:
     <Worksheet ss:Name=".Артикули">
      <Table ss:ExpandedColumnCount="6" ss:ExpandedRowCount="7" x:FullColumns="1"
       x:FullRows="1" ss:DefaultRowHeight="15">
       <Column ss:Width="147"/>
       <Column ss:Index="3" ss:Width="170.25"/>
       <Column ss:Width="83.25"/>
       <Column ss:Index="6" ss:Width="78"/>
       <Row>
        <Cell><Data ss:Type="String">Наименование БГ</Data></Cell>
        <Cell><Data ss:Type="String">Артикулен номер</Data></Cell>
        <Cell><Data ss:Type="String">Код</Data></Cell>
        <Cell><Data ss:Type="String">Цена (без ДДС)</Data></Cell>
        <Cell><Data ss:Type="String">Статус</Data></Cell>
        <Cell><Data ss:Type="String">Категория 1</Data></Cell>
       </Row>
       <Row>
        <Cell><Data ss:Type="String">RPT-800DU 800VA/AVR/USB</Data></Cell>
        <Cell><Data ss:Type="String">00043</Data></Cell>
        <Cell><Data ss:Type="String">RPT-800DU 800VA/AVR/USB</Data></Cell>
        <Cell><Data ss:Type="Number">52.8</Data></Cell>
        <Cell><Data ss:Type="String">.Aктивен</Data></Cell>
        <Cell><Data ss:Type="String">Дамски обувки</Data></Cell>
       </Row>
      </Table>
     </Worksheet>
    
    Да се извадят xpath в случая
    Код:
    Worksheet
    Worksheet/Table
    Worksheet/Table/Column
    Worksheet/Table/Row
    Worksheet/Table/Row/Cell
    Worksheet/Table/Row/Cell/Data
     
  4. AMitrev

    AMitrev Well-Known Member

    Рег.:
    Авг 6, 2012
    Съобщения:
    1,601
    Харесвания:
    272
    Точки:
    83
    Пол:
    Мъж
    Място:
    София
    stuklen харесва това.
  5. stuklen

    stuklen Well-Known Member

    Рег.:
    Ноем 23, 2010
    Съобщения:
    1,180
    Харесвания:
    111
    Точки:
    63
    Пол:
    Мъж
    Професия:
    уеб разработки
    Място:
    Габрово
    Това как ще ми помогне в случая?
     
  6. AMitrev

    AMitrev Well-Known Member

    Рег.:
    Авг 6, 2012
    Съобщения:
    1,601
    Харесвания:
    272
    Точки:
    83
    Пол:
    Мъж
    Място:
    София
    Нали за структура питаш? Схема файловете са точно това - описват структурата на даден xml документ.
    Тоест на теб ти трябва XML to XSD (така се наричат тези схема файлове), ако ги нямаш налични.
     
  7. stuklen

    stuklen Well-Known Member

    Рег.:
    Ноем 23, 2010
    Съобщения:
    1,180
    Харесвания:
    111
    Точки:
    63
    Пол:
    Мъж
    Професия:
    уеб разработки
    Място:
    Габрово
    До колкото съм запознат схемата валидира XML, а на мен ми трябва, аз да анализирам xml-а без да ми е налична схема. И в последствие да се укаже кой таг каква информация носи през някакъв интерфейс.
     
  8. isilona

    isilona Member

    Рег.:
    Юли 11, 2016
    Съобщения:
    68
    Харесвания:
    11
    Точки:
    8
    искаш да парсваш xml ?
    Aз съм го правил едно време но с java. Kакъв е проблема с php ?
     
  9. stuklen

    stuklen Well-Known Member

    Рег.:
    Ноем 23, 2010
    Съобщения:
    1,180
    Харесвания:
    111
    Точки:
    63
    Пол:
    Мъж
    Професия:
    уеб разработки
    Място:
    Габрово
    Проблема е, че се опитвам да измисля обучаващ се скрипт, който да прасва XML, а за целта трябва да хвана структурата на XML-a

    Ако някой предложи и цялостно решение, ще го заплатя. Но може би ще се наложи комуникация извън темата.
     
    Последно редактирано: Апр 27, 2018
  10. otspace

    otspace Active Member

    Рег.:
    Окт 18, 2013
    Съобщения:
    297
    Харесвания:
    63
    Точки:
    28
    Аз нещо немога да схвана какво се опитваш да направиш. Трябва ти скрипт които при подаден XML да ти изкарва как да вземеш стойността на всеки елемент ли?
     
  11. stuklen

    stuklen Well-Known Member

    Рег.:
    Ноем 23, 2010
    Съобщения:
    1,180
    Харесвания:
    111
    Точки:
    63
    Пол:
    Мъж
    Професия:
    уеб разработки
    Място:
    Габрово
    Да, нещо такова.
    Така да се получи, че да се избира: този таг съдържа име, този таг съдържа описание, този таг съдържа стойност, а атрибута му е име.. и т.н.
     
  12. Sky

    Sky Well-Known Member

    Рег.:
    Юли 29, 2012
    Съобщения:
    8,825
    Харесвания:
    651
    Точки:
    113
    Пол:
    Мъж
    Място:
    Стара Загора
    Аха, изкуствен интелект.
    Почакай още няколко години да го доразвият.
     
  13. stuklen

    stuklen Well-Known Member

    Рег.:
    Ноем 23, 2010
    Съобщения:
    1,180
    Харесвания:
    111
    Точки:
    63
    Пол:
    Мъж
    Професия:
    уеб разработки
    Място:
    Габрово
    Това е идеята на анализа, да се посочва през интерфейс /от човешко същество/, кое на какво съответства.
     
  14. otspace

    otspace Active Member

    Рег.:
    Окт 18, 2013
    Съобщения:
    297
    Харесвания:
    63
    Точки:
    28
    Това ми звучи като рекурсивно обикаляне из XML и показване на стойност и атрибути. Не би трябвало да е нещо свръхестествено.
     
    imagination харесва това.
  15. hristonev

    hristonev Active Member

    Рег.:
    Авг 5, 2016
    Съобщения:
    513
    Харесвания:
    210
    Точки:
    43
    Пол:
    Мъж
    Зареждаш файла в SimpleXML. Имаш обект и можеш да го завърташ. След завъртането плюваш на усеро структура, като можеш да хванеш масивите при завъртането.
    Начинанието не е от най-лесните защото ще е нужно да генерира доста УИ елементи.
     
  16. stuklen

    stuklen Well-Known Member

    Рег.:
    Ноем 23, 2010
    Съобщения:
    1,180
    Харесвания:
    111
    Точки:
    63
    Пол:
    Мъж
    Професия:
    уеб разработки
    Място:
    Габрово
    Да, така е. Докарах го до някъде, работи, но ми се струва, че трябва да подходя по друг начин, за да стане по-гъвкаво.
    И за това търся решението, което ми убягва.

    Дори и някоя библиотека, която върши работата или част от нея, ще е полезна.
     
  17. AMitrev

    AMitrev Well-Known Member

    Рег.:
    Авг 6, 2012
    Съобщения:
    1,601
    Харесвания:
    272
    Точки:
    83
    Пол:
    Мъж
    Място:
    София
    Схемата ти казва какво има в XML файла. Не е само за валидация.

    Ти искаш да разбереш каква му е структурата, какви елементи има. Е точно това ти дава XSD-то.

    След като имаш решение на проблема и не си го споделил то никой не може да ти каже какво може да се подобри.

    Иначе това което искаш има много решение като някои от тях са:
    - xml to xsd
    - xml to array
    - DOMXpath

    След това интерфейса е въпрос на разбирания за това кое е удобно и кое не :D
     
  18. stuklen

    stuklen Well-Known Member

    Рег.:
    Ноем 23, 2010
    Съобщения:
    1,180
    Харесвания:
    111
    Точки:
    63
    Пол:
    Мъж
    Професия:
    уеб разработки
    Място:
    Габрово
    Не винаги XML има схема.
    xml to xsd няма такъв гущер. и едната идея е да се направи нещо подобно.
    Другите варианти не вършат работа.

    За да се стигне до интерфейс, трябва да се измисли гъвкаво разчитане/анализиране на структурата.

    Примера за xml данни има по-горе.
     
  19. AMitrev

    AMitrev Well-Known Member

    Рег.:
    Авг 6, 2012
    Съобщения:
    1,601
    Харесвания:
    272
    Точки:
    83
    Пол:
    Мъж
    Място:
    София
    След като няма схема си правиш. Какви гущери? Даже има хиляди онлайн тулове дето правят от xml - xsd ;).

    И другите работи ти вършат работа, но нещо ти се губи.

    Да нямаш проблеми с namespaces?
    Примера ти е за excel-ски xml, така че лесно може да намериш php class/функция която го парсва :)
     
  20. stuklen

    stuklen Well-Known Member

    Рег.:
    Ноем 23, 2010
    Съобщения:
    1,180
    Харесвания:
    111
    Точки:
    63
    Пол:
    Мъж
    Професия:
    уеб разработки
    Място:
    Габрово
    Не мога да открия, рових се няколко дена, мислих варианти и не можах да измисля нещо по-универсално. Затова реших да пиша във форума.
    5 глави мислят повече от една, а 6-та има решение с/у заплащане. ;)
     

Сподели страницата

  1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies.
    Dismiss Notice