ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° 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
.
ΠΠ°ΡΡΡΠΎΠΉΠΊΠΈ ΡΠΊΡΠ΅Π½Π° ΠΈ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π΅Π³ΠΎ ΡΠ°Π±ΠΎΡΡ (ΡΠΏΡΠ°Π²Π°)