XML plugin

Форматирование, минификация, валидация и другие полезные методы работы с XML.

Версия: 1.2

Дата релиза: 1 июля 2022

format

отформатировать XML из строки

format(string content)
content XML контент

Описание возврата: отформатированныи XML

Примеры использования
<?php
// инициализация
$xhe_host = '127.0.0.1:7010';
$relative_app_dir = '..\\..\\..\\';
require($relative_app_dir.'Templates/init.php');
include($relative_app_dir.'Templates/_for_tests_.php');

$bUTF8Ver = true;
$PHP_Use_Trought_Shell = true;

// рабочая папка
$script_folder = $debug->get_cur_script_folder();
// отсносительный путь
$app_dir = realpath($script_folder.$relative_app_dir);
// тестовые данные
$test = new _for_tests_($script_folder, $xml);

// начало теста
$test->echo_header('format');

echo '1. Non-Formatted XML:'."\n\n";
$xml_path = $test->get_test_file_full_path('textxml.xml');
$xml_text = $test->read_all_text_from_file($xml_path);
echo $test->escapeXml($xml_text)."\n";

echo '2. Formatted JSON:'."\n\n";
echo $test->escapeXml($xml->format($xml_text))."\n";

// конец теста
echo "\n<hr><br>";

// выход
$app->quit();
?>
// связь с платформой
xhe_host = '127.0.0.1:7014'
_path = require('path')
relative_app_dir = '..\\..\\..\\'
echo = require(_path.join(relative_app_dir, 'Templates JS', 'init.js'))
_for_tests_ = require(_path.join(relative_app_dir, 'Templates JS', '_for_tests_.js'))

// рабочая папка
script_folder = debug.get_cur_script_folder()
// отсносительны йпуть
app_dir = _path.resolve(_path.join(script_folder, relative_app_dir))
// тестовые данные
test = new _for_tests_(script_folder, xml)

// начало теста
test.echo_header('format')

echo('1. Non-Formatted XML:\n\n')
xml_path = test.get_test_file_full_path('textxml.xml')
xml_text = test.read_all_text_from_file(xml_path)
echo(`${test.escapeXml(xml_text)}\n`)

echo('2. Formatted JSON:\n\n')
echo(`${test.escapeXml(xml.format(xml_text))}\n`)

// конец теста
echo('\n<hr><br>')

// выход
app.quit()
# дополнительные пути
import sys, os
relative_app_dir = '..\\..\\..\\'
sys.path.append(os.path.join(relative_app_dir, 'Templates PY'))

# связь с платофрмой
xhe_host = '127.0.0.1:7010'
from xweb_human_emulator import *
from _for_tests_ import _for_tests_

# рабочая папка
script_folder = debug.get_cur_script_folder()
# относительный путь
app_dir = os.path.abspath(os.path.join(script_folder, relative_app_dir))

# тестовые данные
test = _for_tests_(script_folder, xml)

# начало теста
test.echo_header('format')

print('1. Non-Formatted XML:\n')
xml_path = test.get_test_file_full_path('textxml.xml')
xml_text = test.read_all_text_from_file(xml_path)
print(test.escapeXml(xml_text))

print('2. Formatted JSON:\n')
print(test.escapeXml(xml.format(xml_text)))

# конец теста
print('\n<hr><br>')

# выход
app.quit()

format_from_file

отформатировать XML из фаила

format_from_file(string xmlPath)
xmlPath путь к XML фаилу

Описание возврата: отформатированныи XML

Примеры использования
<?php
// инициализация
$xhe_host = '127.0.0.1:7010';
$relative_app_dir = '..\\..\\..\\';
require($relative_app_dir.'Templates/init.php');
include($relative_app_dir.'Templates/_for_tests_.php');

$bUTF8Ver = true;
$PHP_Use_Trought_Shell = true;

// рабочая папка
$script_folder = $debug->get_cur_script_folder();
// отсносительный путь
$app_dir = realpath($script_folder.$relative_app_dir);
// тестовые данные
$test = new _for_tests_($script_folder, $xml);

// начало теста
$test->echo_header('format_from_file');

echo '1. Non-Formatted XML:'."\n\n";
$xml_path = $test->get_test_file_full_path('textxml.xml');
$xml_text = $test->read_all_text_from_file($xml_path);
echo $test->escapeXml($xml_text)."\n";

echo '2. Formatted JSON:'."\n\n";
echo $test->escapeXml($xml->format_from_file($xml_path))."\n";

// конец теста
echo "\n<hr><br>";

// выход
$app->quit();
?>
// связь с платформой
xhe_host = '127.0.0.1:7014'
_path = require('path')
relative_app_dir = '..\\..\\..\\'
echo = require(_path.join(relative_app_dir, 'Templates JS', 'init.js'))
_for_tests_ = require(_path.join(relative_app_dir, 'Templates JS', '_for_tests_.js'))

// рабочая папка
script_folder = debug.get_cur_script_folder()
// отсносительны йпуть
app_dir = _path.resolve(_path.join(script_folder, relative_app_dir))
// тестовые данные
test = new _for_tests_(script_folder, xml)

// начало теста
test.echo_header('format_from_file')

echo('1. Non-Formatted XML:\n\n')
xml_path = test.get_test_file_full_path('textxml.xml')
xml_text = test.read_all_text_from_file(xml_path)
echo(`${test.escapeXml(xml_text)}\n`)

echo('2. Formatted JSON:\n\n')
echo(`${test.escapeXml(xml.format_from_file(xml_path))}\n`)

// конец теста
echo('\n<hr><br>')

// выход
app.quit()
# дополнительные пути
import sys, os
relative_app_dir = '..\\..\\..\\'
sys.path.append(os.path.join(relative_app_dir, 'Templates PY'))

# связь с платофрмой
xhe_host = '127.0.0.1:7010'
from xweb_human_emulator import *
from _for_tests_ import _for_tests_

# рабочая папка
script_folder = debug.get_cur_script_folder()
# относительный путь
app_dir = os.path.abspath(os.path.join(script_folder, relative_app_dir))

# тестовые данные
test = _for_tests_(script_folder, xml)

# начало теста
test.echo_header('format_from_file')

print('1. Non-Formatted XML:\n')
xml_path = test.get_test_file_full_path('textxml.xml')
xml_text = test.read_all_text_from_file(xml_path)
print(test.escapeXml(xml_text))

print('2. Formatted JSON:\n')
print(test.escapeXml(xml.format_from_file(xml_path)))

# конец теста
print('\n<hr><br>')

# выход
app.quit()

extract_xPaths

получить из строки XML все xpath всех узлов без индексов

extract_xPaths(string content)
content XML контент

Описание возврата: все xpath для узлов

Примеры использования
<?php
// инициализация
$xhe_host = '127.0.0.1:7010';
$relative_app_dir = '..\\..\\..\\';
require($relative_app_dir.'Templates/init.php');
include($relative_app_dir.'Templates/_for_tests_.php');

$bUTF8Ver = true;
$PHP_Use_Trought_Shell = true;

// рабочая папка
$script_folder = $debug->get_cur_script_folder();
// отсносительный путь
$app_dir = realpath($script_folder.$relative_app_dir);
// тестовые данные
$test = new _for_tests_($script_folder, $xml);

// начало теста
$test->echo_header('extract_xPaths');

echo '1. XML:'."\n\n";
$xml_path = $test->get_test_file_full_path('textxml.xml');
$xml_text = $test->read_all_text_from_file($xml_path);
echo $test->escapeXml($xml_text)."\n";

echo '2. All Xpaths:'."\n\n";
echo $test->escapeXml($xml->extract_xPaths($xml_text))."\n";

// конец теста
echo "\n<hr><br>";

// выход
$app->quit();
?>
// связь с платформой
xhe_host = '127.0.0.1:7014'
_path = require('path')
relative_app_dir = '..\\..\\..\\'
echo = require(_path.join(relative_app_dir, 'Templates JS', 'init.js'))
_for_tests_ = require(_path.join(relative_app_dir, 'Templates JS', '_for_tests_.js'))

// рабочая папка
script_folder = debug.get_cur_script_folder()
// отсносительны йпуть
app_dir = _path.resolve(_path.join(script_folder, relative_app_dir))
// тестовые данные
test = new _for_tests_(script_folder, xml)

// начало теста
test.echo_header('extract_xPaths')

echo('1. XML:\n\n')
xml_path = test.get_test_file_full_path('textxml.xml')
xml_text = test.read_all_text_from_file(xml_path)
echo(`${test.escapeXml(xml_text)}\n`)

echo('2. All Xpaths:\n\n')
echo(`${test.escapeXml(xml.extract_xPaths(xml_text))}\n`)

// конец теста
echo('\n<hr><br>')

// выход
app.quit()
# дополнительные пути
import sys, os
relative_app_dir = '..\\..\\..\\'
sys.path.append(os.path.join(relative_app_dir, 'Templates PY'))

# связь с платофрмой
xhe_host = '127.0.0.1:7010'
from xweb_human_emulator import *
from _for_tests_ import _for_tests_

# рабочая папка
script_folder = debug.get_cur_script_folder()
# относительный путь
app_dir = os.path.abspath(os.path.join(script_folder, relative_app_dir))

# тестовые данные
test = _for_tests_(script_folder, xml)

# начало теста
test.echo_header('extract_xPaths')

print('1. XML:\n')
xml_path = test.get_test_file_full_path('textxml.xml')
xml_text = test.read_all_text_from_file(xml_path)
print(test.escapeXml(xml_text))

print('2. All Xpaths:\n')
print(test.escapeXml(xml.extract_xPaths(xml_text)))

# конец теста
print('\n<hr><br>')

# выход
app.quit()

extract_xPaths_from_file

получить из фаила XML все xpath всех узлов без индексов

extract_xPaths_from_file(string xmlPath)
xmlPath путь к XML фаилу

Описание возврата: все xpath для узлов

Примеры использования
<?php
// инициализация
$xhe_host = '127.0.0.1:7010';
$relative_app_dir = '..\\..\\..\\';
require($relative_app_dir.'Templates/init.php');
include($relative_app_dir.'Templates/_for_tests_.php');

$bUTF8Ver = true;
$PHP_Use_Trought_Shell = true;

// рабочая папка
$script_folder = $debug->get_cur_script_folder();
// отсносительный путь
$app_dir = realpath($script_folder.$relative_app_dir);
// тестовые данные
$test = new _for_tests_($script_folder, $xml);

// начало теста
$test->echo_header('extract_xPaths_from_file');

echo '1. XML:'."\n\n";
$xml_path = $test->get_test_file_full_path('textxml.xml');
$xml_text = $test->read_all_text_from_file($xml_path);
echo $test->escapeXml($xml_text)."\n";

echo '2. All Xpaths:'."\n\n";
echo $test->escapeXml($xml->extract_xPaths_from_file($xml_path))."\n";

// конец теста
echo "\n<hr><br>";

// выход
$app->quit();
?>
// связь с платформой
xhe_host = '127.0.0.1:7014'
_path = require('path')
relative_app_dir = '..\\..\\..\\'
echo = require(_path.join(relative_app_dir, 'Templates JS', 'init.js'))
_for_tests_ = require(_path.join(relative_app_dir, 'Templates JS', '_for_tests_.js'))

// рабочая папка
script_folder = debug.get_cur_script_folder()
// отсносительны йпуть
app_dir = _path.resolve(_path.join(script_folder, relative_app_dir))
// тестовые данные
test = new _for_tests_(script_folder, xml)

// начало теста
test.echo_header('extract_xPaths_from_file')

echo('1. XML:\n\n')
xml_path = test.get_test_file_full_path('textxml.xml')
xml_text = test.read_all_text_from_file(xml_path)
echo(`${test.escapeXml(xml_text)}\n`)

echo('2. All Xpaths:\n\n')
echo(`${test.escapeXml(xml.extract_xPaths_from_file(xml_path))}\n`)

// конец теста
echo('\n<hr><br>')

// выход
app.quit()
# дополнительные пути
import sys, os
relative_app_dir = '..\\..\\..\\'
sys.path.append(os.path.join(relative_app_dir, 'Templates PY'))

# связь с платофрмой
xhe_host = '127.0.0.1:7010'
from xweb_human_emulator import *
from _for_tests_ import _for_tests_

# рабочая папка
script_folder = debug.get_cur_script_folder()
# относительный путь
app_dir = os.path.abspath(os.path.join(script_folder, relative_app_dir))

# тестовые данные
test = _for_tests_(script_folder, xml)

# начало теста
test.echo_header('extract_xPaths_from_file')

print('1. XML:\n')
xml_path = test.get_test_file_full_path('textxml.xml')
xml_text = test.read_all_text_from_file(xml_path)
print(test.escapeXml(xml_text))

print('2. All Xpaths:\n')
print(test.escapeXml(xml.extract_xPaths_from_file(xml_path)))

# конец теста
print('\n<hr><br>')

# выход
app.quit()

get_by_xPath_single

выполнить xpath запрос для XML из строки

get_by_xPath_single(string content, string xPath)
content XML контент
xPath запрос xpath

Описание возврата: содержимое узла

Примеры использования
<?php
// инициализация
$xhe_host = '127.0.0.1:7010';
$relative_app_dir = '..\\..\\..\\';
require($relative_app_dir.'Templates/init.php');
include($relative_app_dir.'Templates/_for_tests_.php');

$bUTF8Ver = true;
$PHP_Use_Trought_Shell = true;

// рабочая папка
$script_folder = $debug->get_cur_script_folder();
// отсносительный путь
$app_dir = realpath($script_folder.$relative_app_dir);
// тестовые данные
$test = new _for_tests_($script_folder, $xml);

// начало теста
$test->echo_header('get_by_xPath_single');

$query1 = '/Root/Tree[1]/Leaf[2]';
$query2 = '/Root/Tree[1]/Leaf[position()<3]';
$query3 = '/Root/Tree[1]';
$query4 = '/Root/Tree[2]';

$xml_path = $test->get_test_file_full_path('textxml.xml');
$xml_text = $test->read_all_text_from_file($xml_path);
echo '1. Query: \"'.$query1."\"\n\n";
echo $test->escapeXml($xml->get_by_xPath_single($xml_text, $query1))."\n";

echo '2. Query: \"'.$query2."\"\n\n";
echo $test->escapeXml($xml->get_by_xPath_single($xml_text, $query2))."\n";

echo '3. Query: \"'.$query3."\"\n\n";
echo $test->escapeXml($xml->get_by_xPath_single($xml_text, $query3))."\n";

echo '4. Query: \"'.$query4."\"\n\n";
echo $test->escapeXml($xml->get_by_xPath_single($xml_text, $query4))."\n";

// конец теста
echo "\n<hr><br>";

// выход
$app->quit();
?>
// связь с платформой
xhe_host = '127.0.0.1:7014'
_path = require('path')
relative_app_dir = '..\\..\\..\\'
echo = require(_path.join(relative_app_dir, 'Templates JS', 'init.js'))
_for_tests_ = require(_path.join(relative_app_dir, 'Templates JS', '_for_tests_.js'))

// рабочая папка
script_folder = debug.get_cur_script_folder()
// отсносительны йпуть
app_dir = _path.resolve(_path.join(script_folder, relative_app_dir))
// тестовые данные
test = new _for_tests_(script_folder, xml)

// начало теста
test.echo_header('get_by_xPath_single')

query1 = '/Root/Tree[1]/Leaf[2]'
query2 = '/Root/Tree[1]/Leaf[position()<3]'
query3 = '/Root/Tree[1]'
query4 = '/Root/Tree[2]'

xml_path = test.get_test_file_full_path('textxml.xml')
xml_text = test.read_all_text_from_file(xml_path)
echo(`1. Query: "${query1}"\n\n`)
echo(`${test.escapeXml(xml.get_by_xPath_single(xml_text, query1))}\n`)

echo(`2. Query: "${query2}"\n\n`)
echo(`${test.escapeXml(xml.get_by_xPath_single(xml_text, query2))}\n`)

echo(`3. Query: "${query3}"\n\n`)
echo(`${test.escapeXml(xml.get_by_xPath_single(xml_text, query3))}\n`)

echo(`4. Query: "${query4}"\n\n`)
echo(`${test.escapeXml(xml.get_by_xPath_single(xml_text, query4))}\n`)

// конец теста
echo('\n<hr><br>')

// выход
app.quit()
# дополнительные пути
import sys, os
relative_app_dir = '..\\..\\..\\'
sys.path.append(os.path.join(relative_app_dir, 'Templates PY'))

# связь с платофрмой
xhe_host = '127.0.0.1:7010'
from xweb_human_emulator import *
from _for_tests_ import _for_tests_

# рабочая папка
script_folder = debug.get_cur_script_folder()
# относительный путь
app_dir = os.path.abspath(os.path.join(script_folder, relative_app_dir))

# тестовые данные
test = _for_tests_(script_folder, xml)

# начало теста
test.echo_header('get_by_xPath_single')

query1 = '/Root/Tree[1]/Leaf[2]'
query2 = '/Root/Tree[1]/Leaf[position()<3]'
query3 = '/Root/Tree[1]'
query4 = '/Root/Tree[2]'

xml_path = test.get_test_file_full_path('textxml.xml')
xml_text = test.read_all_text_from_file(xml_path)
print(f'1. Query: "{query1}"\n')
print(test.escapeXml(xml.get_by_xPath_single(xml_text, query1)))

print(f'2. Query: "{query2}"\n')
print(test.escapeXml(xml.get_by_xPath_single(xml_text, query2)))

print(f'3. Query: "{query3}"\n')
print(test.escapeXml(xml.get_by_xPath_single(xml_text, query3)))

print(f'4. Query: "{query4}"\n')
print(test.escapeXml(xml.get_by_xPath_single(xml_text, query4)))

# конец теста
print('\n<hr><br>')

# выход
app.quit()

get_by_xPath_single_from_file

выполнить xpath запрос для XML из фаила

get_by_xPath_single_from_file(string xmlPath, string xPath)
xmlPath путь к XML фаилу
xPath запрос xpath

Описание возврата: содержимое узла

Примеры использования
<?php
// инициализация
$xhe_host = '127.0.0.1:7010';
$relative_app_dir = '..\\..\\..\\';
require($relative_app_dir.'Templates/init.php');
include($relative_app_dir.'Templates/_for_tests_.php');

$bUTF8Ver = true;
$PHP_Use_Trought_Shell = true;

// рабочая папка
$script_folder = $debug->get_cur_script_folder();
// отсносительный путь
$app_dir = realpath($script_folder.$relative_app_dir);
// тестовые данные
$test = new _for_tests_($script_folder, $xml);

// начало теста
$test->echo_header('get_by_xPath_single_from_file');

$query1 = '/Root/Tree[1]/Leaf[2]';
$query2 = '/Root/Tree[1]/Leaf[position()<3]';
$query3 = '/Root/Tree[1]';
$query4 = '/Root/Tree[2]';

$xml_path = $test->get_test_file_full_path('textxml.xml');
echo '1. Query: \"'.$query1."\"\n\n";
echo $test->escapeXml($xml->get_by_xPath_single_from_file($xml_path, $query1))."\n";

echo '2. Query: \"'.$query2."\"\n\n";
echo $test->escapeXml($xml->get_by_xPath_single_from_file($xml_path, $query2))."\n";

echo '3. Query: \"'.$query3."\"\n\n";
echo $test->escapeXml($xml->get_by_xPath_single_from_file($xml_path, $query3))."\n";

echo '4. Query: \"'.$query4."\"\n\n";
echo $test->escapeXml($xml->get_by_xPath_single_from_file($xml_path, $query4))."\n";

// конец теста
echo "\n<hr><br>";

// выход
$app->quit();
?>
// связь с платформой
xhe_host = '127.0.0.1:7014'
_path = require('path')
relative_app_dir = '..\\..\\..\\'
echo = require(_path.join(relative_app_dir, 'Templates JS', 'init.js'))
_for_tests_ = require(_path.join(relative_app_dir, 'Templates JS', '_for_tests_.js'))

// рабочая папка
script_folder = debug.get_cur_script_folder()
// отсносительны йпуть
app_dir = _path.resolve(_path.join(script_folder, relative_app_dir))
// тестовые данные
test = new _for_tests_(script_folder, xml)

// начало теста
test.echo_header('get_by_xPath_single_from_file')

query1 = '/Root/Tree[1]/Leaf[2]'
query2 = '/Root/Tree[1]/Leaf[position()<3]'
query3 = '/Root/Tree[1]'
query4 = '/Root/Tree[2]'

xml_path = test.get_test_file_full_path('textxml.xml')
echo(`1. Query: "${query1}"\n\n`)
echo(`${test.escapeXml(xml.get_by_xPath_single_from_file(xml_path, query1))}\n`)

echo(`2. Query: "${query2}"\n\n`)
echo(`${test.escapeXml(xml.get_by_xPath_single_from_file(xml_path, query2))}\n`)

echo(`3. Query: "${query3}"\n\n`)
echo(`${test.escapeXml(xml.get_by_xPath_single_from_file(xml_path, query3))}\n`)

echo(`4. Query: "${query4}"\n\n`)
echo(`${test.escapeXml(xml.get_by_xPath_single_from_file(xml_path, query4))}\n`)

// конец теста
echo('\n<hr><br>')

// выход
app.quit()
# дополнительные пути
import sys, os
relative_app_dir = '..\\..\\..\\'
sys.path.append(os.path.join(relative_app_dir, 'Templates PY'))

# связь с платофрмой
xhe_host = '127.0.0.1:7010'
from xweb_human_emulator import *
from _for_tests_ import _for_tests_

# рабочая папка
script_folder = debug.get_cur_script_folder()
# относительный путь
app_dir = os.path.abspath(os.path.join(script_folder, relative_app_dir))

# тестовые данные
test = _for_tests_(script_folder, xml)

# начало теста
test.echo_header('get_by_xPath_single_from_file')

query1 = '/Root/Tree[1]/Leaf[2]'
query2 = '/Root/Tree[1]/Leaf[position()<3]'
query3 = '/Root/Tree[1]'
query4 = '/Root/Tree[2]'

xml_path = test.get_test_file_full_path('textxml.xml')
print(f'1. Query: "{query1}"\n')
print(test.escapeXml(xml.get_by_xPath_single_from_file(xml_path, query1)))

print(f'2. Query: "{query2}"\n')
print(test.escapeXml(xml.get_by_xPath_single_from_file(xml_path, query2)))

print(f'3. Query: "{query3}"\n')
print(test.escapeXml(xml.get_by_xPath_single_from_file(xml_path, query3)))

print(f'4. Query: "{query4}"\n')
print(test.escapeXml(xml.get_by_xPath_single_from_file(xml_path, query4)))

# конец теста
print('\n<hr><br>')

# выход
app.quit()

get_lines_count_from_file

получить количество строк в XML из фаила

get_lines_count_from_file(string xmlPath)
xmlPath путь к XML фаилу

Описание возврата: количество строк

Примеры использования
<?php
// инициализация
$xhe_host = '127.0.0.1:7010';
$relative_app_dir = '..\\..\\..\\';
require($relative_app_dir.'Templates/init.php');
include($relative_app_dir.'Templates/_for_tests_.php');

$bUTF8Ver = true;
$PHP_Use_Trought_Shell = true;

// рабочая папка
$script_folder = $debug->get_cur_script_folder();
// отсносительный путь
$app_dir = realpath($script_folder.$relative_app_dir);
// тестовые данные
$test = new _for_tests_($script_folder, $xml);

// начало теста
$test->echo_header('get_lines_count_from_file');

echo '1. XML:'."\n\n";
$xml_path = $test->get_test_file_full_path('textxml.xml');
$xml_text = $test->read_all_text_from_file($xml_path);
echo $test->escapeXml($xml_text)."\n";

echo '2. Lines Count(expected 7):'."\n";
echo $xml->get_lines_count_from_file($xml_path)."\n";

// конец теста
echo "\n<hr><br>";

// выход
$app->quit();
?>
// связь с платформой
xhe_host = '127.0.0.1:7014'
_path = require('path')
relative_app_dir = '..\\..\\..\\'
echo = require(_path.join(relative_app_dir, 'Templates JS', 'init.js'))
_for_tests_ = require(_path.join(relative_app_dir, 'Templates JS', '_for_tests_.js'))

// рабочая папка
script_folder = debug.get_cur_script_folder()
// отсносительны йпуть
app_dir = _path.resolve(_path.join(script_folder, relative_app_dir))
// тестовые данные
test = new _for_tests_(script_folder, xml)

// начало теста
test.echo_header('get_lines_count_from_file')

echo('1. XML:\n\n')
xml_path = test.get_test_file_full_path('textxml.xml')
xml_text = test.read_all_text_from_file(xml_path)
echo(`${test.escapeXml(xml_text)}\n`)

echo('2. Lines Count(expected 7):\n')
echo(`${xml.get_lines_count_from_file(xml_path)}\n`)

// конец теста
echo('\n<hr><br>')

// выход
app.quit()
# дополнительные пути
import sys, os
relative_app_dir = '..\\..\\..\\'
sys.path.append(os.path.join(relative_app_dir, 'Templates PY'))

# связь с платофрмой
xhe_host = '127.0.0.1:7010'
from xweb_human_emulator import *
from _for_tests_ import _for_tests_

# рабочая папка
script_folder = debug.get_cur_script_folder()
# относительный путь
app_dir = os.path.abspath(os.path.join(script_folder, relative_app_dir))

# тестовые данные
test = _for_tests_(script_folder, xml)

# начало теста
test.echo_header('get_lines_count_from_file')

print('1. XML:\n')
xml_path = test.get_test_file_full_path('textxml.xml')
xml_text = test.read_all_text_from_file(xml_path)
print(test.escapeXml(xml_text))

print('2. Lines Count(expected 7):')
print(xml.get_lines_count_from_file(xml_path))

# конец теста
print('\n<hr><br>')

# выход
app.quit()

minify

минимицировать XML из строки

minify(string content)
content XML контент

Описание возврата: минимизированныи XML

Примеры использования
<?php
// инициализация
$xhe_host = '127.0.0.1:7010';
$relative_app_dir = '..\\..\\..\\';
require($relative_app_dir.'Templates/init.php');
include($relative_app_dir.'Templates/_for_tests_.php');

$bUTF8Ver = true;
$PHP_Use_Trought_Shell = true;

// рабочая папка
$script_folder = $debug->get_cur_script_folder();
// отсносительный путь
$app_dir = realpath($script_folder.$relative_app_dir);
// тестовые данные
$test = new _for_tests_($script_folder, $xml);

// начало теста
$test->echo_header('minify');

echo '1. Non-Minified XML:'."\n\n";
$xml_path = $test->get_test_file_full_path('textxml.xml');
$xml_text = $test->read_all_text_from_file($xml_path);
echo $test->escapeXml($xml_text)."\n";

echo '2. Minified JSON:'."\n\n";
echo $test->escapeXml($xml->minify($xml_text))."\n";

// конец теста
echo "\n<hr><br>";

// выход
$app->quit();
?>
// связь с платформой
xhe_host = '127.0.0.1:7014'
_path = require('path')
relative_app_dir = '..\\..\\..\\'
echo = require(_path.join(relative_app_dir, 'Templates JS', 'init.js'))
_for_tests_ = require(_path.join(relative_app_dir, 'Templates JS', '_for_tests_.js'))

// рабочая папка
script_folder = debug.get_cur_script_folder()
// отсносительны йпуть
app_dir = _path.resolve(_path.join(script_folder, relative_app_dir))
// тестовые данные
test = new _for_tests_(script_folder, xml)

// начало теста
test.echo_header('minify')

echo('1. Non-Minified XML:\n\n')
xml_path = test.get_test_file_full_path('textxml.xml')
xml_text = test.read_all_text_from_file(xml_path)
echo(`${test.escapeXml(xml_text)}\n`)

echo('2. Minified JSON:\n\n')
echo(`${test.escapeXml(xml.minify(xml_text))}\n`)

// конец теста
echo('\n<hr><br>')

// выход
app.quit()
# дополнительные пути
import sys, os
relative_app_dir = '..\\..\\..\\'
sys.path.append(os.path.join(relative_app_dir, 'Templates PY'))

# связь с платофрмой
xhe_host = '127.0.0.1:7010'
from xweb_human_emulator import *
from _for_tests_ import _for_tests_

# рабочая папка
script_folder = debug.get_cur_script_folder()
# относительный путь
app_dir = os.path.abspath(os.path.join(script_folder, relative_app_dir))

# тестовые данные
test = _for_tests_(script_folder, xml)

# начало теста
test.echo_header('minify')

print('1. Non-Minified XML:\n')
xml_path = test.get_test_file_full_path('textxml.xml')
xml_text = test.read_all_text_from_file(xml_path)
print(test.escapeXml(xml_text))

print('2. Minified JSON:\n')
print(test.escapeXml(xml.minify(xml_text)))

# конец теста
print('\n<hr><br>')

# выход
app.quit()

minify_from_file

минимицировать XML из фаила

minify_from_file(string xmlPath)
xmlPath путь к XML фаилу

Описание возврата: минимизированныи XML

Примеры использования
<?php
// инициализация
$xhe_host = '127.0.0.1:7010';
$relative_app_dir = '..\\..\\..\\';
require($relative_app_dir.'Templates/init.php');
include($relative_app_dir.'Templates/_for_tests_.php');

$bUTF8Ver = true;
$PHP_Use_Trought_Shell = true;

// рабочая папка
$script_folder = $debug->get_cur_script_folder();
// отсносительный путь
$app_dir = realpath($script_folder.$relative_app_dir);
// тестовые данные
$test = new _for_tests_($script_folder, $xml);

// начало теста
$test->echo_header('minify_from_file');

echo '1. Non-Minified XML:'."\n\n";
$xml_path = $test->get_test_file_full_path('textxml.xml');
$xml_text = $test->read_all_text_from_file($xml_path);
echo $test->escapeXml($xml_text)."\n";

echo '2. Minified JSON:'."\n\n";
echo $test->escapeXml($xml->minify_from_file($xml_path))."\n";

// конец теста
echo "\n<hr><br>";

// выход
$app->quit();
?>
// связь с платформой
xhe_host = '127.0.0.1:7014'
_path = require('path')
relative_app_dir = '..\\..\\..\\'
echo = require(_path.join(relative_app_dir, 'Templates JS', 'init.js'))
_for_tests_ = require(_path.join(relative_app_dir, 'Templates JS', '_for_tests_.js'))

// рабочая папка
script_folder = debug.get_cur_script_folder()
// отсносительны йпуть
app_dir = _path.resolve(_path.join(script_folder, relative_app_dir))
// тестовые данные
test = new _for_tests_(script_folder, xml)

// начало теста
test.echo_header('minify_from_file')

echo('1. Non-Minified XML:\n\n')
xml_path = test.get_test_file_full_path('textxml.xml')
xml_text = test.read_all_text_from_file(xml_path)
echo(`${test.escapeXml(xml_text)}\n`)

echo('2. Minified JSON:\n\n')
echo(`${test.escapeXml(xml.minify_from_file(xml_path))}\n`)

// конец теста
echo('\n<hr><br>')

// выход
app.quit()
# дополнительные пути
import sys, os
relative_app_dir = '..\\..\\..\\'
sys.path.append(os.path.join(relative_app_dir, 'Templates PY'))

# связь с платофрмой
xhe_host = '127.0.0.1:7010'
from xweb_human_emulator import *
from _for_tests_ import _for_tests_

# рабочая папка
script_folder = debug.get_cur_script_folder()
# относительный путь
app_dir = os.path.abspath(os.path.join(script_folder, relative_app_dir))

# тестовые данные
test = _for_tests_(script_folder, xml)

# начало теста
test.echo_header('minify_from_file')

print('1. Non-Minified XML:\n')
xml_path = test.get_test_file_full_path('textxml.xml')
xml_text = test.read_all_text_from_file(xml_path)
print(test.escapeXml(xml_text))

print('2. Minified JSON:\n')
print(test.escapeXml(xml.minify_from_file(xml_path)))

# конец теста
print('\n<hr><br>')

# выход
app.quit()

validate

валидация XML из строки

validate(string content, string xsdScheme)
content XML контент
xsdScheme путь к XSD фаилу

Описание возврата: валиден

Примеры использования
<?php
// инициализация
$xhe_host = '127.0.0.1:7010';
$relative_app_dir = '..\\..\\..\\';
require($relative_app_dir.'Templates/init.php');
include($relative_app_dir.'Templates/_for_tests_.php');

$bUTF8Ver = true;
$PHP_Use_Trought_Shell = true;

// рабочая папка
$script_folder = $debug->get_cur_script_folder();
// отсносительный путь
$app_dir = realpath($script_folder.$relative_app_dir);
// тестовые данные
$test = new _for_tests_($script_folder, $xml);

// начало теста
$test->echo_header('validate');

echo '1. XML:'."\n\n";
$xml_path = $test->get_test_file_full_path('textxml.xml');
$xml_text = $test->read_all_text_from_file($xml_path);
echo $test->escapeXml($xml_text)."\n";

echo '2. XSD:'."\n\n";
$xsd_path = $test->get_test_file_full_path('xsdtest.xsd');
$xsd_text = $test->read_all_text_from_file($xsd_path);
echo $test->escapeXml($xsd_text)."\n";

echo '3. Is Valid(Expected true):'."\n";
$res = $xml->validate($xml_text, $xsd_path);
$res = $res ? 'true' : 'false';
echo $res."\n";

// конец теста
echo "\n<hr><br>";

// выход
$app->quit();
?>
// связь с платформой
xhe_host = '127.0.0.1:7014'
_path = require('path')
relative_app_dir = '..\\..\\..\\'
echo = require(_path.join(relative_app_dir, 'Templates JS', 'init.js'))
_for_tests_ = require(_path.join(relative_app_dir, 'Templates JS', '_for_tests_.js'))

// рабочая папка
script_folder = debug.get_cur_script_folder()
// отсносительны йпуть
app_dir = _path.resolve(_path.join(script_folder, relative_app_dir))
// тестовые данные
test = new _for_tests_(script_folder, xml)

// начало теста
test.echo_header('validate')

echo('1. XML:\n\n')
xml_path = test.get_test_file_full_path('textxml.xml')
xml_text = test.read_all_text_from_file(xml_path)
echo(`${test.escapeXml(xml_text)}\n`)

echo('2. XSD:\n\n')
xsd_path = test.get_test_file_full_path('xsdtest.xsd')
xsd_text = test.read_all_text_from_file(xsd_path)
echo(`${test.escapeXml(xsd_text)}\n`)

echo('3. Is Valid(Expected true):\n')
res = xml.validate(xml_text, xsd_path)
echo(`${res}\n`)

// конец теста
echo('\n<hr><br>')

// выход
app.quit()
# дополнительные пути
import sys, os
relative_app_dir = '..\\..\\..\\'
sys.path.append(os.path.join(relative_app_dir, 'Templates PY'))

# связь с платофрмой
xhe_host = '127.0.0.1:7010'
from xweb_human_emulator import *
from _for_tests_ import _for_tests_

# рабочая папка
script_folder = debug.get_cur_script_folder()
# относительный путь
app_dir = os.path.abspath(os.path.join(script_folder, relative_app_dir))

# тестовые данные
test = _for_tests_(script_folder, xml)

# начало теста
test.echo_header('validate')

print('1. XML:\n')
xml_path = test.get_test_file_full_path('textxml.xml')
xml_text = test.read_all_text_from_file(xml_path)
print(test.escapeXml(xml_text))

print('2. XSD:\n')
xsd_path = test.get_test_file_full_path('xsdtest.xsd')
xsd_text = test.read_all_text_from_file(xsd_path)
print(test.escapeXml(xsd_text))

print('3. Is Valid(Expected true):')
res = xml.validate(xml_text, xsd_path)
print(res)

# конец теста
print('\n<hr><br>')

# выход
app.quit()

validate_from_file

валидация XML из фаила

validate_from_file(string xmlPath, string xsdScheme)
xmlPath путь к XML фаилу
xsdScheme путь к XSD фаилу

Описание возврата: валиден

Примеры использования
<?php
// инициализация
$xhe_host = '127.0.0.1:7010';
$relative_app_dir = '..\\..\\..\\';
require($relative_app_dir.'Templates/init.php');
include($relative_app_dir.'Templates/_for_tests_.php');

$bUTF8Ver = true;
$PHP_Use_Trought_Shell = true;

// рабочая папка
$script_folder = $debug->get_cur_script_folder();
// отсносительный путь
$app_dir = realpath($script_folder.$relative_app_dir);
// тестовые данные
$test = new _for_tests_($script_folder, $xml);

// начало теста
$test->echo_header('validate_from_file');

echo '1. XML:'."\n\n";
$xml_path = $test->get_test_file_full_path('textxml.xml');
$xml_text = $test->read_all_text_from_file($xml_path);
echo $test->escapeXml($xml_text)."\n";

echo '2. XSD:'."\n\n";
$xsd_path = $test->get_test_file_full_path('xsdtest.xsd');
$xsd_text = $test->read_all_text_from_file($xsd_path);
echo $test->escapeXml($xsd_text)."\n";

echo '3. Is Valid(Expected true):'."\n";
$res = $xml->validate_from_file($xml_path, $xsd_path);
$res = $res ? 'true' : 'false';
echo $res."\n";

// конец теста
echo "\n<hr><br>";

// выход
$app->quit();
?>
// связь с платформой
xhe_host = '127.0.0.1:7014'
_path = require('path')
relative_app_dir = '..\\..\\..\\'
echo = require(_path.join(relative_app_dir, 'Templates JS', 'init.js'))
_for_tests_ = require(_path.join(relative_app_dir, 'Templates JS', '_for_tests_.js'))

// рабочая папка
script_folder = debug.get_cur_script_folder()
// отсносительны йпуть
app_dir = _path.resolve(_path.join(script_folder, relative_app_dir))
// тестовые данные
test = new _for_tests_(script_folder, xml)

// начало теста
test.echo_header('validate_from_file')

echo('1. XML:\n\n')
xml_path = test.get_test_file_full_path('textxml.xml')
xml_text = test.read_all_text_from_file(xml_path)
echo(`${test.escapeXml(xml_text)}\n`)

echo('2. XSD:\n\n')
xsd_path = test.get_test_file_full_path('xsdtest.xsd')
xsd_text = test.read_all_text_from_file(xsd_path)
echo(`${test.escapeXml(xsd_text)}\n`)

echo('3. Is Valid(Expected true):\n')
res = xml.validate_from_file(xml_path, xsd_path)
echo(`${res}\n`)

// конец теста
echo('\n<hr><br>')

// выход
app.quit()
# дополнительные пути
import sys, os
relative_app_dir = '..\\..\\..\\'
sys.path.append(os.path.join(relative_app_dir, 'Templates PY'))

# связь с платофрмой
xhe_host = '127.0.0.1:7010'
from xweb_human_emulator import *
from _for_tests_ import _for_tests_

# рабочая папка
script_folder = debug.get_cur_script_folder()
# относительный путь
app_dir = os.path.abspath(os.path.join(script_folder, relative_app_dir))

# тестовые данные
test = _for_tests_(script_folder, xml)

# начало теста
test.echo_header('validate_from_file')

print('1. XML:\n')
xml_path = test.get_test_file_full_path('textxml.xml')
xml_text = test.read_all_text_from_file(xml_path)
print(test.escapeXml(xml_text))

print('2. XSD:\n')
xsd_path = test.get_test_file_full_path('xsdtest.xsd')
xsd_text = test.read_all_text_from_file(xsd_path)
print(test.escapeXml(xsd_text))

print('3. Is Valid(Expected true):')
res = xml.validate_from_file(xml_path, xsd_path)
print(res)

# конец теста
print('\n<hr><br>')

# выход
app.quit()

validate_from_file(пример 2)

валидация XML из фаила

validate_from_file(string xmlPath, string xsdScheme)
xmlPath путь к XML фаилу
xsdScheme путь к XSD фаилу

Описание возврата: валиден

Примеры использования
<?php
// инициализация
$xhe_host = '127.0.0.1:7010';
$relative_app_dir = '..\\..\\..\\';
require($relative_app_dir.'Templates/init.php');
include($relative_app_dir.'Templates/_for_tests_.php');

$bUTF8Ver = true;
$PHP_Use_Trought_Shell = true;

// рабочая папка
$script_folder = $debug->get_cur_script_folder();
// отсносительный путь
$app_dir = realpath($script_folder.$relative_app_dir);
// тестовые данные
$test = new _for_tests_($script_folder, $xml);

// начало теста
$test->echo_header('validate_from_file2');

echo '1. XML:'."\n\n";
$xml_path = $test->get_test_file_full_path('nonvalidxml.xml');
$xml_text = $test->read_all_text_from_file($xml_path);
echo $test->escapeXml($xml_text)."\n";

echo '2. XSD:'."\n\n";
$xsd_path = $test->get_test_file_full_path('xsdtest.xsd');
$xsd_text = $test->read_all_text_from_file($xsd_path);
echo $test->escapeXml($xsd_text)."\n";

echo '3. Is Valid(Expected false):'."\n";
$res = $xml->validate_from_file($xml_path, $xsd_path);
$res = $res ? 'true' : 'false';
echo $res."\n";

// конец теста
echo "\n<hr><br>";

// выход
$app->quit();
?>
// связь с платформой
xhe_host = '127.0.0.1:7014'
_path = require('path')
relative_app_dir = '..\\..\\..\\'
echo = require(_path.join(relative_app_dir, 'Templates JS', 'init.js'))
_for_tests_ = require(_path.join(relative_app_dir, 'Templates JS', '_for_tests_.js'))

// рабочая папка
script_folder = debug.get_cur_script_folder()
// отсносительны йпуть
app_dir = _path.resolve(_path.join(script_folder, relative_app_dir))
// тестовые данные
test = new _for_tests_(script_folder, xml)

// начало теста
test.echo_header('validate_from_file2')

echo('1. XML:\n\n')
xml_path = test.get_test_file_full_path('nonvalidxml.xml')
xml_text = test.read_all_text_from_file(xml_path)
echo(`${test.escapeXml(xml_text)}\n`)

echo('2. XSD:\n\n')
xsd_path = test.get_test_file_full_path('xsdtest.xsd')
xsd_text = test.read_all_text_from_file(xsd_path)
echo(`${test.escapeXml(xsd_text)}\n`)

echo('3. Is Valid(Expected false):\n')
res = xml.validate_from_file(xml_path, xsd_path)
echo(`${res}\n`)

// конец теста
echo('\n<hr><br>')

// выход
app.quit()
# дополнительные пути
import sys, os
relative_app_dir = '..\\..\\..\\'
sys.path.append(os.path.join(relative_app_dir, 'Templates PY'))

# связь с платофрмой
xhe_host = '127.0.0.1:7010'
from xweb_human_emulator import *
from _for_tests_ import _for_tests_

# рабочая папка
script_folder = debug.get_cur_script_folder()
# относительный путь
app_dir = os.path.abspath(os.path.join(script_folder, relative_app_dir))

# тестовые данные
test = _for_tests_(script_folder, xml)

# начало теста
test.echo_header('validate_from_file2')

print('1. XML:\n')
xml_path = test.get_test_file_full_path('nonvalidxml.xml')
xml_text = test.read_all_text_from_file(xml_path)
print(test.escapeXml(xml_text))

print('2. XSD:\n')
xsd_path = test.get_test_file_full_path('xsdtest.xsd')
xsd_text = test.read_all_text_from_file(xsd_path)
print(test.escapeXml(xsd_text))

print('3. Is Valid(Expected false):')
res = xml.validate_from_file(xml_path, xsd_path)
print(res)

# конец теста
print('\n<hr><br>')

# выход
app.quit()