|  |
|
 | |
( TUTORIAL ) XML Patch Guide этот пост - ознакомительный перевод поста... |  |
|  |
 | |
|
X Rebirth / Форум / Скрипты и моды X Rebirth / Инструкция по моддингу на сайте Egosoft
Автор: i-tolik (20.11.2013 15:38:52) |
( TUTORIAL ) XML Patch Guide этот пост - ознакомительный "перевод" поста с сайта Егософт.
Гайд XML патчей - "урывков".
Вот Я ознакомился с стандартом IETF XML Patch и хотел бы поделиться своими выводами о возможностях XML-патчей. Примеры получены из modding guide см. перевод выше, IETF spec и xmlpatch library. Каждый XML-файл патчей должен иметь строку заголовок -- diff -- root -- tag:
| <?xml version="1.0" encoding="utf-8"?>
<diff xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >
...
</diff> |
| |
Есть три типа операторов, которые могут выполняться: add - добавить блок XML текста replace - заменить блок XML текста remove - удалить блок XML текста
После выбора одного из них, блок XML, что должен быть изменен, необходимо выбрать с помощью команды "SEL". Аргумент "SEL" должны однозначно описать один узел.
Существует параметр мульти-узлового выбора (MSEL), который не входит в IETF спецификацию, но поддерживается библиотекой xmlpatch. Я не знаю, X -иксы поддерживает его, вот, так что я рекомендую делать многократные записи вместо множественного выбора.
Основные примеры
Все они будут использовать этот основной исходный файл:
| <?xml version="1.0" encoding="UTF-8"?> <root> <bar> <foo a="1"/> <foo a="2"/> </bar> </root> |
| |
Оператор - Add:
Patch (патч)
| <add sel="root/bar"> <foo a="3"/> </add> |
| |
Result (резултат)
| <?xml version="1.0" encoding="UTF-8"?> <root> <bar> <foo a="1"/> <foo a="2"/> <foo a="3"/> </bar> </root> |
| |
Оператор - Replace:
Patch (патч)
| <replace sel="root/bar/foo[@a='1']"> <foo a="3"/> </replace> |
| |
Result (резултат)
| <?xml version="1.0" encoding="UTF-8"?> <root> <bar> <foo a="3"/> <foo a="2"/> </bar> </root> |
| |
Оператор - Remove:
Patch (патч)
| <remove sel="root/bar/foo[@a='1']"/> |
| |
Result (резултат)
| <?xml version="1.0" encoding="UTF-8"?> <root> <bar> <foo a="2"/> </bar> </root> |
| |
Расширенные параметры
Для оператора add есть три атрибута, которые могут использоваться:
sel type pos
Для оператора replace есть только один атрибут:
sel
Для оператора remove есть два атрибута:
sel ws
Вот некоторые примеры.
Add an attribute - (добавить атрибут)
Patch (патч)
| <add sel="root/bar" type="@cat">3</add> |
| |
Result (резултат)
| <?xml version="1.0" encoding="UTF-8"?> <root> <bar cat="3"> <foo a="1"/> <foo a="2"/> </bar> </root> |
| |
Add something before - (добавить что-то прежде)
Patch (патч)
| <add sel="root/bar" pos="before"> <foo a="3"/> </add> |
| |
Result (резултат)
| <?xml version="1.0" encoding="UTF-8"?> <root> <foo a="3"/> <bar> <foo a="1"/> <foo a="2"/> </bar> </root> |
| |
Add something as first child node - (добавить что-то как первый дочерний узел)
Patch (патч)
| <add sel="root/bar" pos="prepend"> <foo a="3"/> </add> |
| |
Result (резултат)
| <?xml version="1.0" encoding="UTF-8"?> <root> <bar> <foo a="3"/> <foo a="1"/> <foo a="2"/> </bar> </root> |
| |
Add something as last child node (default) - (добавить что-то как последний дочерний узел (по умолчанию))
Patch (патч)
| <add sel="root/bar"> <foo a="3"/> </add> |
| |
Result (резултат)
| <?xml version="1.0" encoding="UTF-8"?> <root> <bar> <foo a="1"/> <foo a="2"/> <foo a="3"/> </bar> </root> |
| |
Wildcard Add #1 - (добавить после аргумента)
Patch (патч)
| <add sel="*/bar"> <foo a="3"/> </add> |
| |
Result (резултат)
| <?xml version="1.0" encoding="UTF-8"?> <root> <bar> <foo a="1"/> <foo a="2"/> <foo a="3"/> </bar> </root> |
| |
Wildcard Add #2 - (добавить после аргумента) Patch (патч)
| <add sel="*/foo[@a='1']"> <cat a="3"/> </add> |
| |
Result (резултат)
| <?xml version="1.0" encoding="UTF-8"?> <root> <bar> <foo a="1"> <cat a="3"/> </foo> <foo a="2"/> </bar> </root> |
| |
Wildcard Replace - (заменять)
Patch (патч)
| <replace sel="*/foo[@a='1']"> <cat a="3"/> </replace> |
| |
Result (резултат)
| <?xml version="1.0" encoding="UTF-8"?> <root> <bar> <cat a="3"/> <foo a="2"/> </bar> </root> |
| |
Replace an attribute - (заменять атрибуты)
Patch (патч)
| <replace sel="root/bar/foo[@a='1']/@a">3</replace> |
| |
Result (резултат)
| <?xml version="1.0" encoding="UTF-8"?> <root> <bar> <foo a="3"/> <foo a="2"/> </bar> </root> |
| |
Remove an attribute - (удалить атрибут)
Patch (патч)
| <remove sel="root/bar/foo[@a='1']/@a"/> |
| |
Result (резултат)
| <?xml version="1.0" encoding="UTF-8"?> <root> <bar> <foo/> <foo a="2"/> </bar> </root> |
| |
Remove node with plaintext (a.k.a. whitespace text) - (Удалить узел из текста "a.k.a пробелы текст")
Source(исходный текст)
| <?xml version="1.0" encoding="UTF-8"?> <root> <bar> <foo a="1">Some text here</foo> <foo a="2"/> </bar> </root> |
| |
Patch (патч)
| <remove sel="root/bar/foo[@a='1']" ws="after"/> |
| |
Result (резултат)
| <?xml version="1.0" encoding="UTF-8"?> <root> <bar> <foo a="2"/> </bar> </root> |
| |
|
|
дерево темы → Инструкция по моддингу на сайте Egosoft
Инструкция по моддингу на сайте Egosoft »
|  |
|  |
 |  |  | |
| | | |
|  |
При полном или частичном использовании материалов сайта активная (прямая) ссылка на x-rebirth.x3tc.net обязательна.
|
Внимание!
На сайте строго запрещается затрагивать/обсуждать/ссылаться на всевозможные незаконные программы и способы, позволяющие обойти/взломать (и т.п.) защиту игры X Rebirth - т.н. крэки (crack, а также: nocd, nodvd и другие). Attention! On this site forbidden any discussions of crack programs for X Rebirth (any cracks, nocd, nodvd etc).
|
|