Открываем файл xml для редактирования онлайн

Содержание:

Что такое DOM?

DOM — это аббревиатура от Document Object Model (Объектная Модель Документа).

Объектная Модель Документа (DOM) – это программный интерфейс (API) для HTML и XML документов.

XML-документы имеют иерархию информационных единиц, называемых узлами. DOM — это способ описания этих узлов и отношений между ними.

Документ DOM — это набор узлов или фрагментов информации, организованных в иерархию. Эта иерархия позволяет разработчику перемещаться по дереву в поисках конкретной информации. Поскольку она основана на иерархии информации, модель DOM называется древовидной.

XML DOM, с другой стороны, также предоставляет API, который позволяет разработчику добавлять, редактировать, перемещать или удалять узлы в дереве в любой момент для создания приложения.

Что такое API? Это набор функций, с помощью которых мы можем сделать запрос сайту и получать нужный ответ. Вот этот ответ чаще всего приходит в формате XML.

Возможные технические ошибки при открытии

Если следовать описанной выше инструкции, проблем с открытием файла xml в большинстве случаев не возникает. Однако иногда система не работает или срабатывает некорректно. Причинами этого могут быть разные факторы – наиболее распространенные случаи описаны далее.

Документ не открывается даже на сайте Росреестра

Это может быть связано с тем, что настройки безопасности вашего браузера блокируют открытие файла, «подозревая» наличие вирусных программ и файлов. В таком случае необходимо изменить соответствующие настройки:

  1. В Google Chrome заходят в «Настройки», выбирают «Загрузки» и загружают нужный файл.
  2. В браузере Internet Explorer выбирают «Включить все содержимое» или же добавляют адрес сайта Росреестра в настройках.
  3. В браузере Mozilla сначала заходят на сайт Росреестра, а затем убирают значок в разделе «Пока отключить защиту».

Сайт Росреестра не работает или выдает ошибку

Этот случай встречается намного реже, но тем не менее, сбои на сайте Росреестра тоже возможны. В таком случае можно просто подождать возобновления работы или же открыть документ на стороннем сервисе. В сети можно найти как платные, так и бесплатные услуги по открытию файла в формате xml. Также можно обратиться в службу поддержки, чтобы уточнить, когда сайт снова заработает.

Читайте далее:

Что такое XML Parser?

XML Parser предоставляет способ доступа или изменения данных в документе XML. Java предоставляет несколько опций для анализа документов XML. Ниже приведены различные типы синтаксических анализаторов, которые обычно используются для анализа XML-документов.

  • Dom Parser — анализирует XML-документ, загружая все содержимое документа и создавая его полное иерархическое дерево в памяти.

  • SAX Parser — анализирует XML-документ по триггерам на основе событий. Не загружает полный документ в память.

  • Анализатор JDOM — анализирует XML-документ аналогично анализатору DOM, но более простым способом.

  • StAX Parser — анализирует XML-документ аналогично SAX-анализатору, но более эффективным способом.

  • Анализатор XPath — анализирует XML-документ на основе выражения и широко используется в сочетании с XSLT.

  • DOM4J Parser — библиотека Java для анализа XML, XPath и XSLT с использованием Java Collections Framework. Он обеспечивает поддержку DOM, SAX и JAXP.

Существуют API-интерфейсы JAXB и XSLT для обработки синтаксического анализа XML объектно-ориентированным способом. Мы подробно проработаем каждый синтаксический анализатор в последующих главах этого урока.

Java DOM Parser — Обзор

Объектная модель документа (DOM) является официальной рекомендацией Консорциума World Wide Web (W3C). Он определяет интерфейс, который позволяет программам получать доступ и обновлять стиль, структуру и содержимое документов XML. XML-парсеры, поддерживающие DOM, реализуют этот интерфейс.

Шаги к использованию JDOM

Ниже приведены шаги, используемые при анализе документа с использованием JDOM Parser.

  • Импорт пакетов, связанных с XML.
  • Создать SAXBuilder
  • Создать документ из файла или потока
  • Извлечь корневой элемент
  • Изучить атрибуты
  • Изучите подэлементы

Создать документ из файла или потока

File inputFile = new File("input.txt");
SAXBuilder saxBuilder = new SAXBuilder();
Document document = saxBuilder.build(inputFile);

Изучите подэлементы

//returns a list of subelements of specified name
getChildren("subelementName"); 

//returns a list of all child nodes
getChildren(); 

//returns first child node
getChild("subelementName"); 

Получение значения соответствующих атрибутов

Итак, теперь наша задача — получить значение внутри атрибута с помощью нашего Python XML Parser.

Его позиция от корневого узла — , поэтому нам нужно перебрать все совпадения на этом уровне дерева.

Мы можем сделать это с помощью , где level — это желаемая позиция (в нашем случае ).

for tag in root_node.find_all(level):
    value = tag.get(attribute)
    if value is not None: print(value)

получит значение нашего на уровнях, на которых мы ищем. Итак, нам просто нужно сделать это в и получить значения атрибутов и . Это оно!

import xml.etree.ElementTree as ET

# We're at the root node (<page>)
root_node = ET.parse('sample.xml').getroot()

# We need to go one level below to get <header>
# and then one more level from that to go to <type>
for tag in root_node.findall('header/type'):
    # Get the value of the heading attribute
    h_value = tag.get('heading')
    if h_value is not None:
        print(h_value)
    # Get the value of the text attribute
    t_value = tag.get('text')
    if t_value is not None:
        print(t_value)

Выход

XML Parsing in Python
Hello from AskPython. We'll be parsing XML

Мы получили все значения на этом уровне нашего дерева синтаксического анализа XML! Мы успешно проанализировали наш XML-файл.

Возьмем другой пример, чтобы все прояснить.

Теперь предположим, что XML-файл выглядит так:

<data>
    <items>
        <item name="item1">10</item>
        <item name="item2">20</item>
        <item name="item3">30</item>
        <item name="item4">40</item>
    </items>
</data>

Здесь мы должны не только получить значения атрибутов , но также получить текстовые значения 10, 20, 30 и 40 для каждого элемента на этом уровне.

Чтобы получить значение атрибута , мы можем сделать то же самое, что и раньше. Мы также можем использовать чтобы получить значение. Это то же самое, что и , за исключением того, что он использует поиск по словарю.

attr_value = tag.get(attr_name)
# Both methods are the same. You can
# choose any approach
attr_value = tag.attrib

Получить текстовое значение просто. Просто используйте:

tag.text

Итак, наша полная программа для этого парсера будет:

import xml.etree.ElementTree as ET

# We're at the root node (<page>)
root_node = ET.parse('sample.xml').getroot()

# We need to go one level below to get <items>
# and then one more level from that to go to <item>
for tag in root_node.findall('items/item'):
    # Get the value from the attribute 'name'
    value = tag.attrib
    print(value)
    # Get the text of that tag
    print(tag.text)

Выход

item1
10
item2
20
item3
30
item4
40

Вы можете расширить эту логику на любое количество уровней и для файлов XML произвольной длины! Вы также можете записать новое дерево синтаксического анализа в другой файл XML.

Пример Ajax XML

Используя Ajax, мы можем анализировать xml из локального каталога, а также с серверов. В следующем примере показано, как анализировать xml с помощью веб-браузера.

<html>
   <head>
   
      <script>
         function showCD(str) {
            if (str == "") {
               document.getElementById("txtHint").innerHTML = "";
               return;
            }
            
            if (window.XMLHttpRequest) {
               // code for IE7+, Firefox, Chrome, Opera, Safari
               xmlhttp = new XMLHttpRequest();
            }else {  
               // code for IE6, IE5
               xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
            }
            
            xmlhttp.onreadystatechange = function() {
               if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
                  document.getElementById("txtHint").innerHTML = xmlhttp.responseText;
               }
            }
            xmlhttp.open("GET","getcourse.php?q="+str,true);
            xmlhttp.send();
         }
      </script>
   
   </head>
   <body>
      
      <form>
         Select a Course:
         <select name = "cds" onchange = "showCD(this.value)">
            <option value = "">Select a course:</option>
            <option value = "Android">Android </option>
            <option value = "Html">HTML</option>
            <option value = "Java">Java</option>
            <option value = "Microsoft">MS technologies</option>
         </select>
      </form>
      
      <div id = "txtHint"><b>Course info will be listed here...</b></div>
      
   </body>
</html>

Приведенный выше пример вызовет getcourse.php, используя метод GET. Файл getcourse.php загружает catalog.xml. getcourse.php как показано ниже —

<?php
   $q = $_GET;
   
   $xmlDoc = new DOMDocument();
   $xmlDoc->load("catalog.xml");
   
   $x = $xmlDoc->getElementsByTagName('COURSE');
   
   for ($i = 0; $i<=$x->length-1; $i++) {
      =
      if ($x->item($i)->nodeType == 1) {
         if ($x->item($i)->childNodes->item(0)->nodeValue == $q) {
            $y = ($x->item($i)->parentNode);
         }
      }
   }
	
   $cd = ($y->childNodes);
   
   for ($i = 0;$i<$cd->length;$i++) {
      if ($cd->item($i)->nodeType == 1) {
         echo("<b>" . $cd->item($i)->nodeName . ":</b> ");
         echo($cd->item($i)->childNodes->item(0)->nodeValue);
         echo("<br>");
      }
   }
?>

XML Viewer Plus:

XML Viewer Plus is a freeware application that lets you view and edit XML files. The program has been developed keeping in mind the needs of software developers and database administrators, since it displays the source code in plain-text layout, giving users the feel of a working development environment. To open a particular file, you can simply drag and drop it to the program’s interface. The editing features includes inserting text, simple cut, copy, paste options, undo/redo options, and select/delete options. On top of the Source Editor, it shows a toolbar which contains quick access icons for frequently used commands.

This free XML Viewer also provides browser integration, to preview XML files directly in your native Internet Explorer browser. Apart from the above mentioned features, this free XML viewer also supports validating text. Moreover, you can use the built-in “Find” function, to quickly search any text within the document. XML Viewer Plus is a completely portable software which doesn’t need to be installed on your system.

Works With: Windows

Price: Free

Download: Click here to download XML Viewer Plus.

Как открыть xml-файл онлайн

Вам важно узнать содержимое файла XML, который вы нашли, но не хотите загружать программное обеспечение? Нет проблем, это не обязательно. Чтобы открыть файлы с расширением .XML, вы можете использовать один из нескольких инструментов онлайн-просмотра

Вот некоторые интернет-сайты, которые предлагают просмотр файлов XML: это простые в использовании и по-настоящему доступные инструменты.

Codebeautify

Первый веб-сайт, который выполняет задачу программы для просмотра XML-файлов – XML Viewer codebeautify.org. Для того, чтобы использовать этот инструмент, перейдите по адресу codebeautify.org.

Интерфейс XML Viewer невероятно прост и функционален: следуя указаниям, которые вы найдете в следующих строках, вам не составит труда использовать его для просмотра файлов XML.

Сначала нажмите кнопку Browse, чтобы найти файл на вашем ПК или Mac. После выбора нажмите кнопку Открыть в диалоговом окне, чтобы завершить процесс импорта.

На экране XML Input слева вы увидите текст файла, который вы открыли, а на правом экране вы можете увидеть его в соответствии с другими структурами: нажав кнопку просмотра дерева, вы увидите структуру различных тегов и зависимостей; нажав на кнопку Beautify / Format, вы можете просмотреть хорошо отформатированный исходный код, а с помощью кнопки Minify вы можете удалить весь ненужный код.

Кроме того, вы можете экспортировать XML в другие форматы, такие как CSV (Export to CSV) или в JSON (XML to JSON). Если вы хотите внести изменения, вы можете сохранить их, нажав кнопку Download, которая позволяет сохранить новый файл на ПК, всегда в формате XML.

XMLGrid

Если вы просто хотите открыть указанный вами XML-файл и не хотите читать содержимое в разных форматах или структурах, я рекомендую веб-сайт XML Grid.net, позволяющий открывать XML-файл в несколько кликов из браузера.

Как его использовать? Очень просто: сначала зайдите на главную страницу веб-сайта и, как только отобразится соответствующая веб-страница, нажмите Open File и Выберите файл. Очевидно, теперь вам нужно найти XML-файл на вашем компьютере, щелкнуть по нему, а затем по кнопке Открыть в диалоговом окне Windows или macOS, чтобы открыть его. После загрузки нажмите кнопку Submit.

Если всё прошло правильно, файл покажет Well-Formed XML. Затем файл отобразится в нижней панели, и вы можете нажать кнопку TextView, чтобы просмотреть его в полностью текстовом формате.

Среди дополнительных функций этого веб-сайта есть возможность использования таких инструментов, как онлайновые учебники по XML , чтобы узнать, как писать на XML, и онлайн-валидатор XML, чтобы проверить правильность написания.

XMLViewer

Среди многочисленных интернет-сайтов, выполняющих задачу открытия и просмотра файлов XML, один из тех, что выделяется своим увлекательным графическим интерфейсом, – это xmlviewer.org.

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

Чтобы использовать его, перейдите на главную страницу веб-сайта, загрузите файл с помощью кнопки Browse и нажмите кнопку Format.

При желании вы можете отформатировать текст в формат Json, удалить лишний код (кнопка Minify) и активировать древовидное представление (кнопка Tree View).

Шаги к использованию XPath

Ниже приведены шаги, используемые при разборе документа с использованием XPath Parser.

  • Импорт пакетов, связанных с XML.

  • Создать DocumentBuilder.

  • Создать документ из файла или потока.

  • Создайте объект Xpath и выражение пути XPath.

  • Скомпилируйте выражение XPath с помощью XPath.compile () и получите список узлов, оценив скомпилированное выражение с помощью XPath.evaluate () .

  • Переберите список узлов.

  • Изучите атрибуты.

  • Изучите подэлементы.

Импорт пакетов, связанных с XML

import org.w3c.dom.*;
import org.xml.sax.*;
import javax.xml.parsers.*;
import javax.xml.xpath.*;
import java.io.*;

Создать DocumentBuilder

DocumentBuilderFactory factory =
DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();

Создать документ из файла или потока

StringBuilder xmlStringBuilder = new StringBuilder();
xmlStringBuilder.append("<?xml version = "1.0"?> <class> </class>");
ByteArrayInputStream input =  new ByteArrayInputStream(
   xmlStringBuilder.toString().getBytes("UTF-8"));
Document doc = builder.parse(input);

Подготовьте путь выражения и оцените его

String expression = "/class/student";	        
NodeList nodeList = (NodeList) xPath.compile(expression).evaluate(
   doc, XPathConstants.NODESET);

Изучить атрибуты

//returns specific attribute
getAttribute("attributeName");

//returns a Map (table) of names/values
getAttributes(); 

Изучите подэлементы

//returns a list of subelements of specified name
getElementsByTagName("subelementName");

//returns a list of all child nodes
getChildNodes(); 

XML Wrench:

The third website to edit XML files online is XML Wrench. The coolest part of this online XML editor is that it lets you edit multiple XML files together. It lets you upload multiple XML file contents and opens each of them in form of tabs. You have to click on the particular tab to access that XML file and edit it. As far as adding XML file content is concerned, it lets you add them by uploading file and adding file URL.  On adding the file, you will see the interface as shown in the screenshot above. You need to click on the line where you want to make changes. It displays the column and row number and if there’s an error in that line, then it also shows that error with reason behind it.

Выражения XPath

XPath использует выражение пути для выбора узла или списка узлов в документе XML. Ниже приведен список полезных путей и выражений для выбора любого узла / списка узлов из документа XML.

Sr.No. Выражение и описание
1

имя-узла

Выбрать все узлы с заданным именем «nodename»

2

Выбор начинается с корневого узла

3

//

Выбор начинается с текущего узла, соответствующего выбору

4

,

Выбирает текущий узел

5

..

Выбирает родителя текущего узла

6

@

Выбирает атрибуты

7

ученик

Пример — выбираются все узлы с именем «студент»

8

класс / студент

Пример — выбирает все элементы ученика, которые являются потомками класса

9

//ученик

Выбирает все элементы ученика независимо от того, где они находятся в документе

Предикаты

Предикаты используются для поиска определенного узла или узла, содержащего определенное значение, и определяются с помощью .

выражение Результат
/ Класс / студент Выбирает первый элемент студента, который является дочерним элементом элемента класса.
/ Класс / студент Выбирает последний элемент студента, который является дочерним элементом элемента класса.
/ Класс / студент Выбирает последний, кроме одного студенческого элемента, который является дочерним элементом элемента класса.
// студент Выбирает все элементы студента, которые имеют атрибут с именем rollno со значением ‘493’

Что такое XML?

XML — это простой текстовый язык, разработанный для хранения и передачи данных в текстовом формате. Это означает расширяемый язык разметки. Ниже приведены некоторые характерные особенности XML.

  • XML — это язык разметки.

  • XML — это язык на основе тегов, такой как HTML.

  • Теги XML не предопределены как HTML.

  • Вы можете определить свои собственные теги, поэтому он называется расширяемым языком.

  • XML-теги предназначены для самоописания.

  • XML — W3C Рекомендация по хранению и передаче данных.

пример

<?xml version = "1.0"?>
<Class>
   <Name>First</Name>
   <Sections>
      <Section>
         <Name>A</Name>
         <Students>
            <Student>Rohan</Student>
            <Student>Mohan</Student>
            <Student>Sohan</Student>
            <Student>Lalit</Student>
            <Student>Vinay</Student>
         </Students>
      </Section>
      
      <Section>
         <Name>B</Name>
         <Students>
            <Student>Robert</Student>
            <Student>Julie</Student>
            <Student>Kalie</Student>
            <Student>Michael</Student>
         </Students>
      </Section>
   </Sections>
</Class>

Парсеры на основе событий

  • Язык XML используется для структурирования данных и имеет синтаксис, аналогичный HTML. Данными в этом формате можно легко обмениваться между веб-сайтами, поэтому эта технология часто используется для RSS-каналов, подкастов и т. п.
  • Чтобы превратить файлы XML в доступные и читаемые данные, вам понадобится анализатор XML. Это может быть расширение или независимая программа, позволяющая PHP анализировать XML-документы.
  • В PHP синтаксические анализаторы XML делятся на две группы: основанные на событиях (лучше для больших документов) и основанные на деревьях (лучше для небольших документов).

Назад
Вперёд

Освойте PHP и MySQL с нуля в игровой форме
На рынке не хватает веб-разработчиков
На рынке не хватает веб-разработчиков
Освойте популярный PHP-фреймворк
На рынке не хватает fullstack-разработчиков!
Обучение в рассрочку
Учитесь сейчас, платите потом!
Учитесь сейчас, платите потом!

XML Grid:

The first online XML editor website is XML Grid. This website lets you add the XML file content by 3 methods: Manual Typing, Import File, or by Adding the file URL. For the entered XML file content, it shows the line(s) with the error if your file content is not correct. The editing part is also easy, you only have to double-click on the cell you want to edit. It will give you a pop-up where you can make changes as per your choice. Alternatively, you can also right-click on the cell to avoid the pop-up and edit directly in the cell. It also has one click Find feature for finding any particular text.

If the file content is error free, then you will see the interface as shown in the screenshot above. It also marks the correct XML file with a Green colored label Well-Formed XML.  You can also switch between Text and Grid view with one click.

Code Beautify:

Code Beautify is the second online XML editor website. It has a two-pane view; left pane is for entering the XML file content and the right pane displays the corresponding output. You can enter the XML file content by manually typing, copy-pasting, uploading file, and entering file URL. It comes with a syntax highlighter which means you will find all the used syntax in the colored form on the left pane. You can make any number of changes to the left pane and you will see the corresponding results on the right pane.

For the output on the right pane, it displays the output in tree form with all tags highlighted with kinda dull orange color. The colored tags make it easier for you to recognize the opening and closing tag. In the case if you want to focus only on one pane, then you simply need to click on the Full-Screen option. It also lets you save the XML file and share it via a unique URL.

Чем открыть файл xml на компьютере (Виндовс)

Для этих целей подходят все современные текстовые редакторы.

Эту опцию легко перенастроить в контекстном меню, используя пункт «открыть с помощью», или в постоянных настройках — «свойства»\«общие»\«изменить»\«ок».

Чем ещё можно открыть xml на компьютере?

  1. Текстовый редактор Word. Новые версии легко преобразуют список данных в читаемую структуру.
  2. Microsoft Office Excel. Информация будет организована в виде таблицы. Минус — очень медленная загрузка (Рисунок 4).
  3. Блокнот Notepad. Быстро читает даже тяжёлые документы. Его функционал можно увеличить за счёт дополнений.

Рисунок 4. Рабочий интерфейс приложения Microsoft Office Excel с открытым .xml файлом

Что такое парсер XML?

Парсер XML — это программа, которая переводит документ XML в объект объектной модели документа XML (DOM).

Затем объектом XML DOM можно управлять с помощью JavaScript, Python, PHP и т.д.

XML-парсер нам понадобится для чтения и обновления, создания и управления XML-документом.

И хотя в последнее время все большее число веб-сервисов возвращают данные в формате JSON, все же большинство, на данный момент, использует XML, поэтому важно изучить парсинг XML, если вы хотите использовать весь спектр доступных интерфейсов API. В PHP есть два основных типа парсеров XML:

В PHP есть два основных типа парсеров XML:

  • Древовидные парсеры
  • Парсеры на основе событий

XSL/XSLT Support

XSLT 1.0, XSLT 2.0, and
XSLT 3.0 editing, validation, transformation, debugging, and profiling
support

included: Xalan 2.7.1, Saxon 6.5.5, Saxon EE, XSLTProc, and
MSXML3.0/4.0/.NET 1.0/2.0

XSLT debugging using various
built-in processors: Xalan 2.7.1, Saxon 6.5.5, Saxon Home Edition, Saxon Professional
Edition, as well as the Schema-Aware Saxon Enterprise Edition

Easy XSLT/XQuery transformation and XML validation management with reusable
scenarios

Powerful XSLT and refactoring actions can be performed across multiple
files

Preview the transformation results as XHTML, XML, or in your default
browser

Generate XSLT stylesheet documentation in HTML or custom formats

displays the
structure of the associated XML document and can be used to create XSLT templates or
snippets

Intelligent XML editing

Advanced content completion support offers a context-sensitive list of XML
elements, attributes, and values and is driven by XML Schema, Relax NG, NVDL, DTD, or
the document structure

Easily edit XML documents with repetitive patterns using the XML Grid Editing
Mode

Schema annotations/DTD comments are presented in a documentation window next to
the content completion proposals

Editing and validation support for NVDL scripts and XML documents associated with
NVDL

Quickly insert using the Content Completion Assistant

Powerful tree-based XML Outline
view, synchronized in real time with the edited document

New XML file wizards allow you to easily create XML documents that specify a
schema or DTD

Quick Assist and Quick Fix support helps you to quickly resolve errors in XML
documents

presents schema
information about the current XML element

Метод 1: Использование ElementTree (рекомендуется)

Мы можем использовать библиотеку ElementTree Python для решения этой задачи.

Это самый простой и рекомендуемый вариант для создания синтаксического анализатора Python XML, поскольку эта библиотека по умолчанию входит в состав Python.

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

<page>
    <header>
        <type heading="XML Parsing in Python"/>
        <type text="Hello from AskPython. We'll be parsing XML"/>
    </header>
</page>

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

import xml.etree.ElementTree as ET

Mozers XML Viewer:

XML Viewer (by Mozers) is a free XML Viewer application that allows simple and intuitive view of XML files. It’s a handy and lightweight tool; just 59 KB in size. Mozers XML Viewer is a very basic XML Viewer that doesn’t provide much functionality. The program comes as an archive file which you need to extract. Once you launch the program it will automatically ask you to choose a  file to open. The chosen file will be displayed in a tree like representation.

The interface of the program comprises of nothing, but a code window. This window displays the XML code in a tree view, and allows you to easily expand or collapse any node in a single mouse click. It makes use of different color codes to differentiate tree elements. But except all this, the program has nothing to offer. It doesn’t even have a menu bar or any context menu option. All you can do with this simple XML Viewer is opening and reading XML files, in a systematic layout, which of course simple text editors like Notepad, won’t facilitate.

Works With: Windows

Price: Free

Download: Click here to download Mozers XML Viewer.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector