ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° JSON ΠΈ XML

ОглавлСниС

ОписаниС

ЭкшСн слуТит для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с JSON ΠΈ XML.

Π’ ΠΎΠ΄ΠΈΠ½ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ JSON ΠΈ ΠΎΠ΄ΠΈΠ½ XML ΠΎΠ±ΡŠΠ΅ΠΊΡ‚. Если Π’Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ нСсколько ΠΏΠΎΡ€Ρ†ΠΈΠΉ Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°, Ρ‚ΠΎ это Π½Π°Π΄ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΠΎ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΠΈ.

JSON

JSONΒ (JavaScript Object Notation) - простой Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΠΎΠ±ΠΌΠ΅Π½Π° Π΄Π°Π½Π½Ρ‹ΠΌΠΈ, ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΉ для чтСния ΠΈ написания ΠΊΠ°ΠΊ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠΎΠΌ, Ρ‚Π°ΠΊ ΠΈ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠΌ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

{ "firstName": "Иван", "lastName": "Иванов", "address": { "streetAddress": "МосковскоС ш., 101", "city": "Π›Π΅Π½ΠΈΠ½Π³Ρ€Π°Π΄", "postalCode": 101101 }, "phoneNumbers": [ "812 123-1234", "916 123-4567" ] }

XML

XMLΒ - (eXtensible Markup LanguageΒ - Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌΡ‹ΠΉ язык Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΈ)  – язык Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ‚ HTML. ΠŸΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, Π° Π½Π΅ для ΠΈΡ… отобраТСния. Π’Π΅Π³ΠΈ XMLΒ Π½Π΅ ΠΏΡ€Π΅Π΄ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹. Π’Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ сами ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ Π½ΡƒΠΆΠ½Ρ‹Π΅ Ρ‚Π΅Π³ΠΈ.

<CATALOG> <CD> <TITLE>Π˜ΠΌΠΏΠ΅Ρ€ΡΠΊΠ°Ρ ΠŸΠ°Ρ€ΠΎΠ΄ΠΈΡ</TITLE> <ARTIST>Π‘ΠΎΠ± Π”ΠΈΠ»Π°Π½</ARTIST> <COUNTRY>БША</COUNTRY> <COMPANY>ΠšΠΎΠ»ΡƒΠΌΠ±ΠΈΡ</COMPANY> <PRICE>10.90</PRICE> <YEAR>1985</YEAR> </CD> <CD> <TITLE>Π‘ΠΏΡ€ΡΡ‡ΡŒ своС сСрдцС</TITLE> <ARTIST>Π‘ΠΎΠ½Π½ΠΈ Π’Π°ΠΉΠ»Π΅Ρ€</ARTIST> <COUNTRY>Π‘ΠΎΠ΅Π΄ΠΈΠ½Π΅Π½Π½ΠΎΠ΅ ΠšΠΎΡ€ΠΎΠ»Π΅Π²ΡΡ‚Π²ΠΎ</COUNTRY> <COMPANY>Записи си-Π±ΠΈ-эс</COMPANY> <PRICE>9.90</PRICE> <YEAR>1988</YEAR> </CD> <CD> <TITLE>Π›ΡƒΡ‡ΡˆΠΈΠ΅ Π₯ΠΈΡ‚Ρ‹</TITLE> <ARTIST>Π”ΠΎΠ»Π»ΠΈ ΠŸΠ°Ρ€Ρ‚ΠΎΠ½</ARTIST> <COUNTRY>БША</COUNTRY> <COMPANY>Ар-Π‘ΠΈ-Π­ΠΉ</COMPANY> <PRICE>9.90</PRICE> <YEAR>1982</YEAR> </CD> </CATALOG>

Π‘Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ сСрвисы Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ Π½Π΅ красиво ΠΎΡ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ тСкст (ΠΊΠ°ΠΊ Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°Ρ… Π²Ρ‹ΡˆΠ΅) Π° всё Π² ΠΎΠ΄Π½Ρƒ строку, Ρ‡Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ затрудняСт Ρ‡Ρ‚Π΅Π½ΠΈΠ΅. Π’ Ρ‚Π°ΠΊΠΈΡ… случаях ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΌΠΈ beautifier'Π°ΠΌΠΈ. Π’ ВСстСр X/JSON Path ΡƒΠΆΠ΅ встроСн этот ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ (ΠΊΠ½ΠΎΠΏΠΊΠ° Beautify)

Для экшСна Π½Π΅ Π²Π°ΠΆΠ½ΠΎ Π² ΠΎΠ΄Π½Ρƒ строку записан тСкст ΠΈΠ»ΠΈ красиво ΠΎΡ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ - Π³Π»Π°Π²Π½ΠΎΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ Π±Ρ‹Π» ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ составлСн.

Как Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ дСйствиС Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚?

Π§Π΅Ρ€Π΅Π· контСкстноС мСню Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ дСйствиС β†’ Π”Π°Π½Π½Ρ‹Π΅ β†’ ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° JSON/XML

Π›ΠΈΠ±ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ΡΡŒ ΡƒΠΌΠ½Ρ‹ΠΌ поиском.

Π“Π΄Π΅ примСняСтся JSON/XML?

Π§Π°Ρ‰Π΅ всСго эти Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Π² API Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… сСрвисов.

НапримСр сСрвисы ΠΏΠΎ Ρ€Π°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈΡŽ ΠΊΠ°ΠΏΡ‡ΠΈ ΠΈΠ»ΠΈ БМБ сСрвисы (Ссли Π’Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ с Π½ΠΈΠΌΠΈ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ GET-, POST- ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ запросы, минуя ΡΠΊΡˆΠ΅Π½Ρ‹ БСрвисы для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ SMS ΠΈ Π Π°ΡΠΏΠΎΠ·Π½Π°Ρ‚ΡŒ ΠΊΠ°ΠΏΡ‚Ρ‡Ρƒ ) ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ с ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· этих Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ² (Π»ΠΈΠ±ΠΎ сразу с двумя)

Как Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с экшСном?

Для Π½Π°Ρ‡Π°Π»Π° стоит Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ…, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Π’Ρ‹ Π±ΡƒΠ΄Π΅Ρ‚Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ

ΠŸΠ°Ρ€ΡΠΈΠ½Π³

Π”Π°Π½Π½Ρ‹Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ, Π·Π° это ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ дСйствиС ΠŸΠ°Ρ€ΡΠΈΠ½Π³.

Π—Π΄Π΅ΡΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½ XML ΠΈΠ· Описания

Окно ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния экшСна заносится Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Json ΠΈΠ»ΠΈ Xml соотвСтствСнно, содСрТимоС ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π² ОкнС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…

Π’Π°ΠΊ ΠΊΠ°ΠΊ Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ парсился XML Ρ‚ΠΎ ΠΈ Π²ΠΊΠ»Π°Π΄ΠΊΡƒ Π² ОкнС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π²Ρ‹Π±Ρ€Π°Π»ΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ.

Π’ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Count (1) хранится количСство элСмСнтов - ΠΎΡ‡Π΅Π½ΡŒ ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² качСствС ограничитСля ΠΏΡ€ΠΈ ΠΎΠ±Ρ…ΠΎΠ΄Π΅ Π΄Π°Π½Π½Ρ‹Ρ… Π² Ρ†ΠΈΠΊΠ»Π΅. Если Π±Ρ‹ Π² нашСм ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π΅Ρ‰Ρ‘ Π±Ρ‹Π»ΠΈ тэги <DVD> Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ с <CD>, Ρ‚ΠΎ Π±Ρ‹Π»Π° Π±Ρ‹ пСрСмСнная CATALOG.DVD.Count с количСством тэгов <DVD>

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠ½ΠΎΠΏΠΎΠΊ (2) Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ сразу ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² Π±ΡƒΡ„Π΅Ρ€ ΠΎΠ±ΠΌΠ΅Π½Π° макрос ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ.

ΠœΠ°ΠΊΡ€ΠΎΡΡ‹ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…

Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· макросов ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… -{-Xml.CATALOG.CD[1].ARTIST-}.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π²Π½ΡƒΡ‚Ρ€ΠΈ этой ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

{-Xml.CATALOG.{-Variable.item_type-}[{-Variable.counter-}].{-Variable.property-}-}

ΠŸΠΎΠ΄ΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ (основано Π½Π° Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Π½Π½Ρ‹Ρ… Π² сСкции ОписаниС. НумСрация начинаСтся с нуля.)

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ JsonPath/XPath

Данная опция ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠΎΠ³Π΄Π° ΠΈΠ· всСх Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ дСйствия ΠŸΠ°Ρ€ΡΠΈΠ½Π³, Π½Π°Π΄ΠΎ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊΠΎΠ΅-Ρ‚ΠΎ подмноТСство. Π’ Ρ‚Π°ΠΊΠΎΠΌ случаС составляСтся Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ XPath (для XML) ΠΈΠ»ΠΈ JsonPath (для JSON). Π’ составлСнии выраТСния Π’Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠΌΠΎΡ‡ΡŒ ВСстСр X/JSON Path Π’ ΠΏΠΎΠ»Π΅ для вставки выраТСния ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ макросы ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ….

ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ XML

Π£ XML ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ ΡƒΠ·Π»ΠΎΠ². Для доступа ΠΊ Π½ΠΈΠΌ Π² макросах ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹Π΅ скобки со строковым Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ. (НапримСр: {-Xml.CATALOG.CD[0]["item"]-}).

Π‘ΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ

ΠŸΠ°Ρ€ΡΠΈΠ½Π³ большого JSON ΠΈΠ»ΠΈ XML, Π²ΠΎ врСмя ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π² ProjectMaker, ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°Π½ΠΈΠΌΠ°Ρ‚ΡŒ Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ врСмя. Но ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ Π² ZennoPoster парсинг Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π³ΠΎΡ€Π°Π·Π΄ΠΎ быстрСй.


Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² список

Π”Π°Π½Π½ΠΎΠ΅ дСйствиС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠΎΠ³Π΄Π° Π½ΡƒΠΆΠ½ΠΎ ΠΈΠ· всСх Π΄Π°Π½Π½Ρ‹Ρ… Π΄ΠΎΡΡ‚Π°Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ΅ свойство для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ элСмСнта. МоТно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅.

Бвойство - ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° ΠΏΠΎΠ»Π΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π·Π±ΠΈΡ€Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ массив. Π—Π΄Π΅ΡΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΡΡ‚ΡŒ, указывая Ρ‡Π΅Ρ€Π΅Π· Ρ‚ΠΎΡ‡ΠΊΡƒ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€: store.employees). Если ΠΏΠΎΠ»Π΅ Π½Π΅ являСтся массивом, Ρ‚ΠΎ Π² список заносится ΠΎΠ΄ΠΈΠ½ элСмСнт.

ΠŸΠΎΠ΄ΡΠ²ΠΎΠΉΡΡ‚Π²ΠΎ - Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π² массивах ΠΌΠΎΠ³ΡƒΡ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ слоТныС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΊΠ°ΠΊΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠ· Π½Π΅Π³ΠΎ Π±Ρ€Π°Ρ‚ΡŒ для списка.

Если Π·Π° основу ΠΌΡ‹ Π²ΠΎΠ·ΡŒΠΌΡ‘ΠΌ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· сСкции ОписаниС ΠΈ, прСдставим, Ρ‡Ρ‚ΠΎ Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π³ΠΎΠ΄Π° для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ CD, Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹ΠΉ экшСн ΠΌΠΎΠ³ Π±Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π²ΠΈΠ΄:

Π’ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ {-Variable.item_type-} находится CD

Β 


Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ

Π”Π°Π½Π½ΠΎΠ΅ дСйствиС ΠΏΠΎΡ…ΠΎΠΆΠ΅ Π½Π° ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π΅, Π½ΠΎ Ρ‚ΡƒΡ‚ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π½Π΅ ΠΎΠ΄Π½ΠΎ свойство, Π° нСсколько. МоТно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅.

Π’ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ {-Variable.item_type-} находится CD, Π° Π² {-Variable.property-}- ARTIST

Π‘Ρ‚ΠΎΠ»Π±Ρ†Ρ‹ ΠΈΠΌΠ΅Π½ΡƒΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ Π² Excel - большиС (!) латинскиС Π±ΡƒΠΊΠ²Ρ‹, Π² Π°Π»Ρ„Π°Π²ΠΈΡ‚Π½ΠΎΠΌ порядкС. Если Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠΏΡƒΡ‰Π΅Π½ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ столбСц, Ρ‚ΠΎ ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ пустым. На ΡΠΊΡ€ΠΈΠ½ΡˆΠΎΡ‚Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½ столбСц C, Π²ΠΎΡ‚ ΠΊΠ°ΠΊ это ΠΎΡ‚Ρ€Π°Π·ΠΈΠ»ΠΎΡΡŒ Π½Π° ΠΈΡ‚ΠΎΠ³ΠΎΠ²ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅:

Β 


Π Π°Π±ΠΎΡ‚Π° Π² ΠΊΠΎΠ΄Π΅

Π’ C# ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ JSON ΠΈ XML находятся Π² ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π΅ project. Они ΠΈΠΌΠ΅ΡŽΡ‚ Ρ‚ΠΈΠΏ dynamic. Из-Π·Π° этого Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ ΠΊΠΎΠ΄Π° Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½ΠΎ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π²Ρ‹ΠΏΠ°Π΄Π°ΡŽΡ‰ΠΈΠ΅ подсказки.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π° Ρ€Π°Π±ΠΎΡ‚Ρ‹ с XML:

project.Xml.FromString(project.Variables["XmlText"].Value); return project.Xml.PurchaseOrder.Address[0]["Type"];

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 2:

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 3:

Аналогично происходит ΠΈ с Json. Однако стоит ΡƒΡ‡Π΅ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ доступ ΠΊ свойствам происходит Π±Π΅Π· использования β€œValue”.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:


ΠŸΡ€ΠΈΠΌΠ΅Ρ€ использования

JSON

Π•ΡΡ‚ΡŒ сайт http://ip-api.com, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΏΠΎ ip адрСсу ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΠΉ API. ΠŸΡ€ΠΈΠ³ΠΎΠ΄ΠΈΡ‚ΡΡ для:

  • Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ΄ΠΎΡΡ‚ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‡Π΅Ρ€Π΅Π· прокси, Π° Π½Π΅ Ρ‡Π΅Ρ€Π΅Π· основной ip

  • Π²Ρ‹Π±ΠΎΡ€Π° страны/Π³ΠΎΡ€ΠΎΠ΄Π° ΠΏΡ€ΠΈ рСгистрации, согласно Π΄Π°Π½Π½Ρ‹ΠΌ прокси

Он ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π² Ρ€Π°Π·Π½Ρ‹Ρ… Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°Ρ… (ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ Ρ‚ΡƒΡ‚ - https://ip-api.com/docs), Π½ΠΎ нас сСйчас интСрСсуСт JSON.

Для получСния ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π΄Π΅Π»Π°Π΅ΠΌ GET-запрос ΠΏΠΎ адрСсу http://ip-api.com/json, Π·Π°Ρ‚Π΅ΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌ Ρ‡Π΅Ρ€Π΅Π· дСйствиС ΠŸΠ°Ρ€ΡΠΈΡ‚ΡŒ ΠΈ Π΄Π°Π»Π΅Π΅ ΡƒΠΆΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ с ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ


XML + ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° XPath

Π’ качСствС Π΄Π°Π½Π½Ρ‹Ρ… Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ находится Π² сСкции ОписаниС.

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΠΈΠ· всСх Π΄Π°Π½Π½Ρ‹Ρ… Π½Π°ΠΌ Π½ΡƒΠΆΠ½Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ названия альбомов. Для этой Π·Π°Π΄Π°Ρ‡ΠΈ составим XPath Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ //CATALOG/CD/TITLE.

Настройки экшСна ΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π΅Π³ΠΎ Ρ€Π°Π±ΠΎΡ‚Ρ‹ (справа)


ΠŸΠΎΠ»Π΅Π·Π½Ρ‹Π΅ ссылки