Π Π°Π±ΠΎΡ‚Π° с Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°ΠΌΠΈ ΠΎΠ±ΠΌΠ΅Π½Π° Π΄Π°Π½Π½Ρ‹ΠΌΠΈ являСтся Π½Π΅ΠΎΡ‚ΡŠΠ΅ΠΌΠ»Π΅ΠΌΠΎΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π² срСдС 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅. Часто Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ Π·Π°Π΄Π°Ρ‡Π°, ΠΊΠΎΠ³Π΄Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ простыС тСкстовыС Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ»ΠΈ ΡΠ»ΠΎΠΆΠ½ΡƒΡŽ структуру ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π²ΠΎ внСшнюю систСму, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΉ стандарт XML. ПониманиС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ строку Π² XML-Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚, критичСски Π²Π°ΠΆΠ½ΠΎ для ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ с Π²Π΅Π±-сСрвисами, формирования ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΎΠ² ΠΈ сохранСния настроСк.

Π’ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ 1Π‘ сущСствуСт нСсколько ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠ² ΠΊ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡŽ этой Π·Π°Π΄Π°Ρ‡ΠΈ, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΈΠΌΠ΅Π΅Ρ‚ свои особСнности ΠΈ области примСнСния. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ встроСнныС срСдства Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ, ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π½ΡƒΡŽ модСль DOM ΠΈΠ»ΠΈ спСциализированныС классы для сСриализации. Π’Ρ‹Π±ΠΎΡ€ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° зависит ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, трСбуСтся Π»ΠΈ Π²Π°ΠΌ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Β«Π³ΠΎΠ»ΡƒΡŽΒ» строку Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ‚Π΅Π³Π° ΠΈΠ»ΠΈ ΡΡ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½Ρ‹ΠΉ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ с Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌΠΈ ΠΈ Π²Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠΉ структурой.

ΠΠ΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π°Ρ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… символов ΠΈΠ»ΠΈ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‰Π°Ρ сторона Π½Π΅ смоТСт ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ваши Π΄Π°Π½Π½Ρ‹Π΅. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π²Π°ΠΆΠ½ΠΎ ΡΠΎΠ±Π»ΡŽΠ΄Π°Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»Π° экранирования ΠΈ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ трСбования ΠΊ структурС Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ записи строковых Π΄Π°Π½Π½Ρ‹Ρ… Π² XML, рассмотрим Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ ошибки ΠΈ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΠΌ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ для Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… сцСнариСв.

ΠžΡΠ½ΠΎΠ²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с классом Π—Π°ΠΏΠΈΡΡŒXML

Π€ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΌ инструмСнтом для создания XML-Ρ„Π°ΠΉΠ»ΠΎΠ² Π² 1Π‘ являСтся ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π—Π°ΠΏΠΈΡΡŒXML. Π­Ρ‚ΠΎΡ‚ класс прСдоставляСт Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π°Π΄ процСссом Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°, позволяя Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ ΠΈ Π·Π°ΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ Ρ‚Π΅Π³ΠΈ, Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ ΠΈ ΠΏΠΎΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ тСкстовоС содСрТимоС. ИспользованиС этого класса Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ понимания структуры XML, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π²Ρ‹ сами ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΡΡ‚ΡŒ влоТСнности элСмСнтов.

ΠŸΠ΅Ρ€Π΅Π΄ Π½Π°Ρ‡Π°Π»ΠΎΠΌ записи Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ экзСмпляр ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΏΠΎΡ‚ΠΎΠΊ Π΄Π°Π½Π½Ρ‹Ρ…. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ„Π°ΠΉΠ» Π½Π° дискС, HTTP-соСдинСниС ΠΈΠ»ΠΈ Π±ΡƒΡ„Π΅Ρ€ Π² памяти. Π’Π°ΠΆΠ½ΠΎ сразу ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡƒΡŽ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ UTF-8 Π±Π΅Π· BOM, Ρ‡Ρ‚ΠΎ ΠΈΠ½ΠΎΠ³Π΄Π° Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΏΡ€ΠΈ Ρ‡Ρ‚Π΅Π½ΠΈΠΈ Ρ„Π°ΠΉΠ»Π° Π² старых систСмах ΠΈΠ»ΠΈ спСцифичСском ПО. Для строковых Π΄Π°Π½Π½Ρ‹Ρ…, содСрТащих ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Ρƒ, это особСнно Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎ.

ΠŸΡ€ΠΎΡ†Π΅ΡΡ записи строки выглядит ΠΊΠ°ΠΊ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ². Π‘Π½Π°Ρ‡Π°Π»Π° Π²Ρ‹ ΠΏΠΈΡˆΠ΅Ρ‚Π΅ Π½Π°Ρ‡Π°Π»ΡŒΠ½Ρ‹ΠΉ Ρ‚Π΅Π³, Π·Π°Ρ‚Π΅ΠΌ само тСкстовоС содСрТимоС, ΠΈ Π² Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ β€” ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΉ Ρ‚Π΅Π³. БистСма автоматичСски выполняСт экранированиС ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… символов, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ ампСрсанд ΠΈΠ»ΠΈ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ, Ссли Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒΠ’Π΅ΠΊΡΡ‚. Π­Ρ‚ΠΎ избавляСт Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° ΠΎΡ‚ нСобходимости Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ Π·Π°ΠΌΠ΅Π½ΡΡ‚ΡŒ символы Π½Π° HTML-сущности.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Никогда Π½Π΅ ΠΏΡ‹Ρ‚Π°ΠΉΡ‚Π΅ΡΡŒ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ строку, ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‰ΡƒΡŽ символы < ΠΈΠ»ΠΈ >, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒΠΠ°Ρ‡Π°Π»ΠΎΠ­Π»Π΅ΠΌΠ΅Π½Ρ‚Π° Π² качСствС тСкста. Π­Ρ‚ΠΎ Π½Π°Ρ€ΡƒΡˆΠΈΡ‚ структуру Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°. ВсСгда ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒΠ’Π΅ΠΊΡΡ‚ для содСрТимого.

Рассмотрим Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ открытия Ρ„Π°ΠΉΠ»Π° для записи. Код Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½ Π² ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈΠ»ΠΈ ΠΎΠ±Ρ‰ΠΈΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ, Π² зависимости ΠΎΡ‚ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ вашСго Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ.

Π—Π°ΠΏΠΈΡΡŒ = Новый Π—Π°ΠΏΠΈΡΡŒXML;

Π—Π°ΠΏΠΈΡΡŒ.ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒΠ€Π°ΠΉΠ»("C:\Data\export.xml");

Π—Π°ΠΏΠΈΡΡŒ.Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒΠžΠ±ΡŠΡΠ²Π»Π΅Π½ΠΈΠ΅XML();

БСриализация простой строки Π² элСмСнт

Когда стоит Π·Π°Π΄Π°Ρ‡Π° ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΈΠΌΠ΅Π½Π½ΠΎ строковоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π²Π½ΡƒΡ‚Ρ€ΠΈ XML-Ρ‚Π΅Π³Π°, Π²Π°ΠΆΠ½ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π°Ρ‚ΡŒ запись тСкста ΠΈ запись ΠΈΠΌΠ΅Π½ΠΈ элСмСнта. ΠœΠ΅Ρ‚ΠΎΠ΄ Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒΠ’Π΅ΠΊΡΡ‚ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ для содСрТимого. Если ваша строка прСдставляСт собой Π΄Π°Π½Π½Ρ‹Π΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈΠ»ΠΈ описаниС Ρ‚ΠΎΠ²Π°Ρ€Π°, ΠΎΠ½Π° Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½Π° ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΌ ΠΈ Π·Π°ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΌ Ρ‚Π΅Π³Π°ΠΌΠΈ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ элСмСнта.

Частой ошибкой Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ² являСтся ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ строку с ΠΏΡ€ΠΎΠ±Π΅Π»Π°ΠΌΠΈ ΠΈΠ»ΠΈ спСцсимволами Π² качСствС ΠΈΠΌΠ΅Π½ΠΈ Ρ‚Π΅Π³Π°. ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° 1Π‘ строго слСдит Π·Π° соотвСтствиСм спСцификации XML 1.0. Имя элСмСнта Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹, Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒΡΡ с Ρ†ΠΈΡ„Ρ€Ρ‹ ΠΈΠ»ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ нСдопустимыС символы. Если пСрСмСнная, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ имя Ρ‚Π΅Π³Π°, Π½Π΅ соотвСтствуСт этим ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ Π½ΠΎΡ€ΠΌΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ фиксированноС имя Ρ‚Π΅Π³Π°, Π° строку ΠΊΠ»Π°ΡΡ‚ΡŒ Π²Π½ΡƒΡ‚Ρ€ΡŒ.

Для ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ³ΠΎ сохранСния строки слСдуСт Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ дСйствий. Π‘Π½Π°Ρ‡Π°Π»Π° открываСтся элСмСнт-ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€, Π·Π°Ρ‚Π΅ΠΌ записываСтся тСкст, ΠΈ элСмСнт закрываСтся. Π­Ρ‚ΠΎ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ тСкст Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ экранирован. НапримСр, Ссли Π² строкС Π΅ΡΡ‚ΡŒ символ "&", ΠΎΠ½ автоматичСски прСвратится Π² "&" Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ„Π°ΠΉΠ»Π°.

πŸ’‘

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒΠ’Π΅ΠΊΡΡ‚() Π΄Π°ΠΆΠ΅ для пустых строк, Ссли Π»ΠΎΠ³ΠΈΠΊΠ° прилоТСния Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ явного наличия Ρ‚Π΅Π³Π° с пустым содСрТимым, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΏΡƒΡ‚Π°Π½ΠΈΡ†Ρ‹ с само Π·Π°ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΌΠΈΡΡ Ρ‚Π΅Π³Π°ΠΌΠΈ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π° дСмонстрируСт, ΠΊΠ°ΠΊ бСзопасно Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ строку с ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ опасными символами:

ВСкстДляЗаписи = "Π’ΠΎΠ²Π°Ρ€Ρ‹: А & Π‘, Ρ†Π΅Π½Π° < 100 Ρ€ΡƒΠ±.";

Π—Π°ΠΏΠΈΡΡŒ.Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒΠΠ°Ρ‡Π°Π»ΠΎΠ­Π»Π΅ΠΌΠ΅Π½Ρ‚Π°("ОписаниС");

Π—Π°ΠΏΠΈΡΡŒ.Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒΠ’Π΅ΠΊΡΡ‚(ВСкстДляЗаписи);

Π—Π°ΠΏΠΈΡΡŒ.Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒΠšΠΎΠ½Π΅Ρ†Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Π°();

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡΡ‹ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒΡΡ. ВсСгда свСряйтС синтаксис ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² класса Π—Π°ΠΏΠΈΡΡŒXML Π² справкС ΠΏΠΎ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ вСрсии вашСй ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ 1Π‘, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ.

Π Π°Π±ΠΎΡ‚Π° с Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌΠΈ ΠΈ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ°ΠΌΠΈ

Помимо тСкстового содСрТимого, XML-элСмСнты часто содСрТат Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ хранят ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅ ΠΎ строкС. Π’ 1Π‘ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² выполняСтся ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒΠΡ‚Ρ€ΠΈΠ±ΡƒΡ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ строго послС Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒΠΠ°Ρ‡Π°Π»ΠΎΠ­Π»Π΅ΠΌΠ΅Π½Ρ‚Π° ΠΈ Π΄ΠΎ записи любого тСкста ΠΈΠ»ΠΈ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… элСмСнтов. ΠΠ°Ρ€ΡƒΡˆΠ΅Π½ΠΈΠ΅ этого порядка ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ ошибкС выполнСния.

ОсобоС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ слСдуСт ΡƒΠ΄Π΅Π»ΠΈΡ‚ΡŒ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅ Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°. ΠŸΡ€ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ Ρ„Π°ΠΉΠ»Π° ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠΌ ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒΠ€Π°ΠΉΠ» ΠΌΠΎΠΆΠ½ΠΎ явно ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠšΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ°XMLEncoding.UTF8. Π­Ρ‚ΠΎ критичСски Π²Π°ΠΆΠ½ΠΎ ΠΏΡ€ΠΈ ΠΎΠ±ΠΌΠ΅Π½Π΅ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ с внСшними систСмами, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠΆΠΈΠ΄Π°ΡŽΡ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π±Π°ΠΉΡ‚ΠΎΠ². Если ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ° Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½Π°, 1Π‘ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ значСния ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ появлСнию "кракозябр" ΠΏΡ€ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ Ρ„Π°ΠΉΠ»Π° Π² стороннСм Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅.

Π’Π°ΠΊΠΆΠ΅ стоит ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ ΠΎ объявлСнии XML Π² Π½Π°Ρ‡Π°Π»Π΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°. ΠœΠ΅Ρ‚ΠΎΠ΄ Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒΠžΠ±ΡŠΡΠ²Π»Π΅Π½ΠΈΠ΅XML Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΠ΅Ρ€Π²ΡƒΡŽ строку Π²ΠΈΠ΄Π° <?xml version="1.0" encoding="UTF-8"?>. Π₯отя это Π½Π΅ всСгда ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎ стандарту, Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ парсСров Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ наличия этого объявлСния для ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ³ΠΎ опрСдСлСния ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ, особСнно Ссли ΠΎΠ½Π° отличаСтся ΠΎΡ‚ UTF-8.

Π’ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ Π½ΠΈΠΆΠ΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ основныС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ класса Π—Π°ΠΏΠΈΡΡŒXML, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ ΠΏΡ€ΠΈ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ структуры:

ΠœΠ΅Ρ‚ΠΎΠ΄ НазначСниС Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅
ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒΠ€Π°ΠΉΠ» Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ ΠΏΠΎΡ‚ΠΎΠΊΠ° записи Π² Ρ„Π°ΠΉΠ» НСт
Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒΠΠ°Ρ‡Π°Π»ΠΎΠ­Π»Π΅ΠΌΠ΅Π½Ρ‚Π° ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Ρ‚Π΅Π³Π° с ΠΈΠΌΠ΅Π½Π΅ΠΌ НСт
Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒΠΡ‚Ρ€ΠΈΠ±ΡƒΡ‚ Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°Ρ€Ρ‹ имя-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ Ρ‚Π΅Π³ НСт
Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒΠ’Π΅ΠΊΡΡ‚ Π—Π°ΠΏΠΈΡΡŒ тСкстового содСрТимого с экранированиСм НСт
Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒΠšΠΎΠ½Π΅Ρ†Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Π° Π—Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΎΠ³ΠΎ Ρ‚Π΅Π³Π° НСт
πŸ“Š Π‘ ΠΊΠ°ΠΊΠΈΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠΌ ΠΎΠ±ΠΌΠ΅Π½Π° Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ Ρ‡Π°Ρ‰Π΅ всСго?
XML
JSON
YAML
CSV

ИспользованиС ΠŸΠΎΡ‚ΠΎΠΊ Π² памяти для Π±ΡƒΡ„Π΅Ρ€ΠΈΠ·Π°Ρ†ΠΈΠΈ

Иногда запись Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ Π² Ρ„Π°ΠΉΠ» нСцСлСсообразна, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ссли XML Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π² HTTP-запросС ΠΈΠ»ΠΈ сначала ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² памяти. Для Ρ‚Π°ΠΊΠΈΡ… случаСв Π² 1Π‘ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠŸΠΎΡ‚ΠΎΠΊΠ’ΠŸΠ°ΠΌΡΡ‚ΠΈ. Он Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΊΠ°ΠΊ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ„Π°ΠΉΠ», позволяя Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ XML-структуру Π² Π±ΡƒΡ„Π΅Ρ€, Π° Π·Π°Ρ‚Π΅ΠΌ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‘ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² строку ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΠΎΡ‚ΠΎΠΊ.

Π­Ρ‚ΠΎΡ‚ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΏΠΎΠ²Ρ‹ΡˆΠ°Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с нСбольшими ΠΈ срСдними объСмами Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΈΡΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ лишниС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π° с диском. Π’Ρ‹ создаСтС ΠΏΠΎΡ‚ΠΎΠΊ Π² памяти, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚Π΅ ΠΊ Π½Π΅ΠΌΡƒ Π—Π°ΠΏΠΈΡΡŒXML, Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅Ρ‚Π΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚, Π° Π·Π°Ρ‚Π΅ΠΌ Ρ‡Π΅Ρ€Π΅Π· Π§Ρ‚Π΅Π½ΠΈΠ΅XML ΠΈΠ»ΠΈ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚Π°Ρ†ΠΈΡŽ ΠΏΠΎΡ‚ΠΎΠΊΠ° ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚Π΅ ΠΈΡ‚ΠΎΠ³ΠΎΠ²ΡƒΡŽ строку.

ΠŸΡ€ΠΎΡ†Π΅ΡΡ получСния строки ΠΈΠ· ΠΏΠΎΡ‚ΠΎΠΊΠ° Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ аккуратности с ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ курсора. ПослС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ записи позиция указатСля ΠΏΠΎΡ‚ΠΎΠΊΠ° находится Π² ΠΊΠΎΠ½Ρ†Π΅. ΠŸΠ΅Ρ€Π΅Π΄ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ΠΌ Π΄Π°Π½Π½Ρ‹Ρ… Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ±Ρ€ΠΎΡΠΈΡ‚ΡŒ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ Π² Π½Π°Ρ‡Π°Π»ΠΎ, ΠΈΠ½Π°Ρ‡Π΅ Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΠΏΡƒΡΡ‚ΡƒΡŽ строку. Π­Ρ‚ΠΎ типичная ошибка, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π»Π΅Π³ΠΊΠΎ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ, Π²Ρ‹Π·Π²Π°Π² ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠŸΠΎΠ·ΠΈΡ†ΠΈΡ = 0.

ΠŸΠΎΡ‚ΠΎΠΊ = Новый ΠŸΠΎΡ‚ΠΎΠΊΠ’ΠŸΠ°ΠΌΡΡ‚ΠΈ;

Π—Π°ΠΏΠΈΡΡŒ = Новый Π—Π°ΠΏΠΈΡΡŒXML;

Π—Π°ΠΏΠΈΡΡŒ.ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒΠŸΠΎΡ‚ΠΎΠΊ(ΠŸΠΎΡ‚ΠΎΠΊ);

// ... запись Π΄Π°Π½Π½Ρ‹Ρ… ...

Π—Π°ΠΏΠΈΡΡŒ.Π—Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ();

ΠŸΠΎΡ‚ΠΎΠΊ.ΠŸΠΎΠ·ΠΈΡ†ΠΈΡ = 0;

// Π§Ρ‚Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ° дальшС

ΠŸΠΎΡ‡Π΅ΠΌΡƒ ΠΏΠΎΡ‚ΠΎΠΊ Π½ΡƒΠΆΠ½ΠΎ ΡΠ±Ρ€Π°ΡΡ‹Π²Π°Ρ‚ΡŒ Π² ноль?

ПослС записи Π΄Π°Π½Π½Ρ‹Ρ… ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Ρ„Π°ΠΉΠ»Π° (позиция) находится Π² ΠΊΠΎΠ½Ρ†Π΅ ΠΏΠΎΡ‚ΠΎΠΊΠ°. Π›ΡŽΠ±Π°Ρ опСрация чтСния начинаСтся с Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ. Если Π½Π΅ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π² Π½Π°Ρ‡Π°Π»ΠΎ (0), систСма попытаСтся Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ с ΠΊΠΎΠ½Ρ†Π° Ρ„Π°ΠΉΠ»Π°, Π³Π΄Π΅ Π΄Π°Π½Π½Ρ‹Ρ… ΡƒΠΆΠ΅ Π½Π΅Ρ‚, ΠΈ Π²Π΅Ρ€Π½Π΅Ρ‚ пустой Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.

ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ValueTable Π² XML

На ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ Ρ€Π΅Π΄ΠΊΠΎ трСбуСтся ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΎΠ΄Π½Ρƒ ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ строку. Π§Π°Ρ‰Π΅ всСго Π·Π°Π΄Π°Ρ‡Π° стоит Π² Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΊΠ΅ Ρ‚Π°Π±Π»ΠΈΡ‡Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, списка Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ² ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΎΠΊ. Для этих Ρ†Π΅Π»Π΅ΠΉ Π² 1Π‘ сущСствуСт ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Π—Π°ΠΏΠΈΡΡŒXML Π² связкС с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, Π½ΠΎ прямая автоматичСская сСриализация Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ Π² XML ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ Π½Π΅ прСдусмотрСна стандартными срСдствами Π±Π΅Π· использования XDTO ΠΈΠ»ΠΈ Ρ€ΡƒΡ‡Π½ΠΎΠΉ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ.

Однако, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΎΠ±Ρ…ΠΎΠ΄Π° Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹. Π’Π½Π΅ΡˆΠ½ΠΈΠΉ Ρ†ΠΈΠΊΠ» ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ ΠΏΠΎ строкам Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹, создавая элСмСнт для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ строки. Π’Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΉ Ρ†ΠΈΠΊΠ» ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ ΠΏΠΎ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ°ΠΌ, создавая Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ элСмСнты ΠΈΠ»ΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ значСния. ΠŸΡ€ΠΈ этом Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ автоматичСски прСобразуСтся Π² строковоС прСдставлСниС.

Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Π΄Π°Π΅Ρ‚ Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ Π² Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ структуры. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅, Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Ρ‹ с ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°ΠΌΠΈ строк ΠΈΠ»ΠΈ Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ иСрархичСскиС структуры Π½Π° основС Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΈΡ… ссылок Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹. Π“Π»Π°Π²Π½ΠΎΠ΅ β€” ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ Π·Π° Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠΌΠ΅Π½Π° ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ ΠΊΠ°ΠΊ ΠΈΠΌΠ΅Π½Π° Ρ‚Π΅Π³ΠΎΠ², Π±Ρ‹Π»ΠΈ Π²Π°Π»ΠΈΠ΄Π½Ρ‹ΠΌΠΈ для XML.

  • πŸ“‹ ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ провСряйтС ΠΈΠΌΠ΅Π½Π° ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ Π½Π° Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠ² ΠΈ спСцсимволов ΠΏΠ΅Ρ€Π΅Π΄ использованиСм ΠΈΡ… Π² Ρ‚Π΅Π³Π°Ρ….
  • πŸ” Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΎΠ½Π½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈ записи Π±ΠΎΠ»ΡŒΡˆΠΈΡ… объСмов Π΄Π°Π½Π½Ρ‹Ρ…, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ ΠΏΠΎΡ‚Π΅Ρ€ΡΡ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΏΡ€ΠΈ сбоС.
  • ⚑ Для Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Ρ‚Π°Π±Π»ΠΈΡ† рассмотритС Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ записи частями ΠΈΠ»ΠΈ использования сТатия ΠΏΠΎΡ‚ΠΎΠΊΠ°.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠŸΡ€ΠΈ экспортС Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Ρ‚Π°Π±Π»ΠΈΡ† Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π² XML объСм Ρ„Π°ΠΉΠ»Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎ ΠΏΡ€Π΅Π²Ρ‹ΡΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ исходных Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ·-Π·Π° Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹Ρ… расходов Π½Π° Ρ‚Π΅Π³ΠΈ. Π‘Π»Π΅Π΄ΠΈΡ‚Π΅ Π·Π° свободным мСстом Π½Π° дискС ΠΈ Π»ΠΈΠΌΠΈΡ‚Π°ΠΌΠΈ памяти.

β˜‘οΈ ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° ΠΊ экспорту Π΄Π°Π½Π½Ρ‹Ρ…

Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ: 0 / 4

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ошибок ΠΈ валидация Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°

ΠŸΡ€ΠΎΡ†Π΅ΡΡ записи Π² XML ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€Π΅Ρ€Π²Π°Ρ‚ΡŒΡΡ ΠΈΠ·-Π·Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ошибок: ΠΎΡ‚ отсутствия ΠΏΡ€Π°Π² доступа ΠΊ Ρ„Π°ΠΉΠ»Ρƒ Π΄ΠΎ нСдопустимых символов Π² Π΄Π°Π½Π½Ρ‹Ρ…. Π’ 1Π‘ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Ρ‚Π°ΠΊΠΈΡ… ситуаций рСкомСндуСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ°...Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅. Π­Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π—Π°ΠΏΠΈΡΡŒXML ΠΈ ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡ‚ΡŒ Π·Π°Ρ…Π²Π°Ρ‡Π΅Π½Π½Ρ‹Π΅ рСсурсы, Π΄Π°ΠΆΠ΅ Ссли ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»Π° авария.

ОсобоС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ стоит ΡƒΠ΄Π΅Π»ΠΈΡ‚ΡŒ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΡŽ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. ΠœΠ΅Ρ‚ΠΎΠ΄ Π—Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π² Π±Π»ΠΎΠΊΠ΅ Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ Π² сСкции ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° послС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ всСх ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ. Если ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π½Π΅ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ, Ρ„Π°ΠΉΠ» ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡΡ‚Π°Ρ‚ΡŒΡΡ Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмой, ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ процСссы Π½Π΅ смогут Π΅Π³ΠΎ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ.

Для Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ Π§Ρ‚Π΅Π½ΠΈΠ΅XML. ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ созданный Ρ„Π°ΠΉΠ» сразу послС записи. Если парсСр Π½Π΅ выдаст ошибок, Π·Π½Π°Ρ‡ΠΈΡ‚, структура Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Π°. Π­Ρ‚ΠΎ Ρ…ΠΎΡ€ΠΎΡˆΠΈΠΉ Ρ‚ΠΎΠ½ программирования, особСнно ΠΏΡ€ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΊΠ΅ слоТных Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ² ΠΎΠ±ΠΌΠ΅Π½Π°.

πŸ’‘

ВсСгда ΠΎΠ±ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°ΠΉΡ‚Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ записи XML Π² Π±Π»ΠΎΠΊ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ ΠΈ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎ Π·Π°ΠΊΡ€Ρ‹Π²Π°ΠΉΡ‚Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Π—Π°ΠΏΠΈΡΡŒXML Π² Π±Π»ΠΎΠΊΠ΅ "ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ°", Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΡƒΡ‚Π΅Ρ‡Π΅ΠΊ рСсурсов ΠΈ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ².

НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠΉ конструкции для записи Π΄Π°Π½Π½Ρ‹Ρ…:

ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ°

Π—Π°ΠΏΠΈΡΡŒ = Новый Π—Π°ΠΏΠΈΡΡŒXML;

Π—Π°ΠΏΠΈΡΡŒ.ΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒΠ€Π°ΠΉΠ»(ИмяЀайла);

// ... логика записи ...

Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ("Ошибка записи: " + ОписаниСОшибки());

ΠšΠΎΠ½Π΅Ρ†ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠΈ;

Если Π—Π°ΠΏΠΈΡΡŒ <> НСопрСдСлСно Π’ΠΎΠ³Π΄Π°

Π—Π°ΠΏΠΈΡΡŒ.Π—Π°ΠΊΡ€Ρ‹Ρ‚ΡŒ();

ΠšΠΎΠ½Π΅Ρ†Π•ΡΠ»ΠΈ;

Часто Π·Π°Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ вопросы (FAQ)

Как Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ строку, ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‰ΡƒΡŽ символы HTML-Ρ‚Π΅Π³ΠΎΠ², Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ΠΈ Π½Π΅ Π²ΠΎΡΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π»ΠΈΡΡŒ ΠΊΠ°ΠΊ Ρ€Π°Π·ΠΌΠ΅Ρ‚ΠΊΠ°?

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒΠ’Π΅ΠΊΡΡ‚. Он автоматичСски Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ экранированиС ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… символов (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ < Π½Π° &lt;), ΠΈ ΠΎΠ½ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ сохранСны Π² Ρ„Π°ΠΉΠ»Π΅ ΠΊΠ°ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ тСкст, Π° Π½Π΅ ΠΊΠ°ΠΊ Ρ‚Π΅Π³ΠΈ XML.

МоТно Π»ΠΈ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ строку Π² Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ Ρ‚Π΅Π³Π°, Π° Π½Π΅ Π² Π΅Π³ΠΎ содСрТимоС?

Π”Π°, для этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒΠΡ‚Ρ€ΠΈΠ±ΡƒΡ‚ сразу послС Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒΠΠ°Ρ‡Π°Π»ΠΎΠ­Π»Π΅ΠΌΠ΅Π½Ρ‚Π°. Однако ΠΏΠΎΠΌΠ½ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Π² Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°Ρ… Ρ‚Π°ΠΊΠΆΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ экранированиС ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ 1Π‘ выполняСт автоматичСски ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ значСния Π² этот ΠΌΠ΅Ρ‚ΠΎΠ΄.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ ΠΏΡ€ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ Ρ„Π°ΠΉΠ»Π° Π² Π‘Π»ΠΎΠΊΠ½ΠΎΡ‚Π΅ я Π²ΠΈΠΆΡƒ ΠΈΠ΅Ρ€ΠΎΠ³Π»ΠΈΡ„Ρ‹ вмСсто русского тСкста?

Π‘ΠΊΠΎΡ€Π΅Π΅ всСго, Ρ„Π°ΠΉΠ» сохранСн Π² ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠ΅ UTF-8 Π±Π΅Π· BOM, Π° Π‘Π»ΠΎΠΊΠ½ΠΎΡ‚ пытаСтся ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Π΅Π³ΠΎ Π² ANSI. ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Ρ„Π°ΠΉΠ» Π² ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚ΠΎΠΌ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ (Notepad++) ΠΈΠ»ΠΈ явно ΡƒΠΊΠ°ΠΆΠΈΡ‚Π΅ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ ΠΏΡ€ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ Ρ„Π°ΠΉΠ»Π° Π² 1Π‘, Π΄ΠΎΠ±Π°Π²ΠΈΠ² BOM, Ссли это трСбуСтся для совмСстимости.

Как Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ пСрСнос строки Π²Π½ΡƒΡ‚Ρ€ΠΈ XML-элСмСнта?

ΠŸΡ€ΠΎΡΡ‚ΠΎ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ символ пСрСноса строки (символ 10 ΠΈΠ»ΠΈ 13) Π² саму ΡΡ‚Ρ€ΠΎΠΊΠΎΠ²ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ ΠΏΠ΅Ρ€Π΅Π΄ записью. ΠœΠ΅Ρ‚ΠΎΠ΄ Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒΠ’Π΅ΠΊΡΡ‚ сохранит Π΅Π³ΠΎ. Π’ самом XML-Ρ„Π°ΠΉΠ»Π΅ это Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ ΠΊΠ°ΠΊ Ρ€Π°Π·Ρ€Ρ‹Π² строки Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ‚Π΅Π³Π°.

НуТно Π»ΠΈ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ Π·Π°ΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ Ρ‚Π΅Π³ΠΈ, Ссли я ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽ Π—Π°ΠΏΠΈΡΡŒXML?

Π”Π°, ΠΌΠ΅Ρ‚ΠΎΠ΄ Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒΠΠ°Ρ‡Π°Π»ΠΎΠ­Π»Π΅ΠΌΠ΅Π½Ρ‚Π° Π½Π΅ Π·Π°ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ Ρ‚Π΅Π³ автоматичСски. Π’Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ явно Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ Π—Π°ΠΏΠΈΡΠ°Ρ‚ΡŒΠšΠΎΠ½Π΅Ρ†Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Π° послС записи всСго содСрТимого этого элСмСнта. НСсоблюдСниС баланса Ρ‚Π΅Π³ΠΎΠ² ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ ошибкС ΠΏΡ€ΠΈ Ρ‡Ρ‚Π΅Π½ΠΈΠΈ Ρ„Π°ΠΉΠ»Π°.