|
Как унаследоваться от классов пакета %XML?
|
|||
---|---|---|---|
#18+
Есть задача, в которой использую %XML.Reader. Примерно так: Код: sql 1. 2. 3. 4.
Хотелось бы улучшить класс %XML.Document Понятно, что велосипед, но нигде не нашел возможности, например, искать следующий(предыдущий) узел с известным именем на одном уровне иерархии и еще несколько тупых возможностей, которые в любом списке есть, а вот в этот класс ИС их добавить забыл (к слову, зато поскольку %XML.Document унаследован зачем-то от %XML.Node, в нем есть туча бесполезных и вылетающих с ошибкой методов типа MoveToParentElement). В общем, чего-то типа FindNextNode(.Node) там нету. Но если я изготовлю свой класс (Например MYXML.Document) унаследованный от %XML.Document, то мне придется и еще тучу классов пакета %XML переопределять. Например, тот-же %XML.Reader, ибо его свойство Document вернет мне совсем не то, что нужно. Будете смеяться, но я попробовал конструкцию Код: sql 1. 2. 3.
Но вэбэа, как обычно, показал себя не в лучшем свете - ни разу не случилось счастье. Понятно, что можно работать конструкциями типа Код: sql 1.
Но это-ж коряво. Я тоже понимаю, что на-лету дополнить предка до потомка тоже довольно неряшливо, но очень хотелось бы - это-ж не хранимые объекты все-таки. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.09.2012, 03:11 |
|
Как унаследоваться от классов пакета %XML?
|
|||
---|---|---|---|
#18+
тема сообщения "Как унаследоваться от классов пакета %XML?" а дальше никакого отношения к наследованию только какой то бред о том то IS вам не предоставила инструментов авторискать следующий(предыдущий) узел с известным именем на одном уровне иерархии и еще несколько тупых возможностей, которые в любом списке есть, а вот в этот класс ИС их добавить забыл XML это никак не список, и %XML.Reader работает с ним как с потоком, и он перебирает все узлы по очереди я непонимаю точно вашей задачи, но наверняка она легко решается либо с помощью своего SAX handler , который бы собрал из XML например какую то многомерную структуру, по которой вы потом без труда найдете что вам нужно. второй вариант, это использование XPath, посмотрите класс %XML.XPATH.Document и примеры в нем ... |
|||
:
Нравится:
Не нравится:
|
|||
07.09.2012, 10:36 |
|
Как унаследоваться от классов пакета %XML?
|
|||
---|---|---|---|
#18+
DAiMor, Меня интересует именно вопрос наследования и именно от классов пакета XML. Интересует примерно раз в полгода. Каждый раз упираюсь в то, что унаследоваться оттуда если и можно, то только ВСЕМ пакетом - сильное связывание это плохо, но тут, видно, без него нельзя было обойтись. Тут подвернулась очередная проблема, в руках у меня был #dim, а за спиной - открытый форум ;) Про удачность примера ничего сказать не могу - какой уж был, извините. Вопрос можно обобщить за рамкой xml - как заставить предка вести себя как потомка. Для хранимых объектов я подменяю информацию в узлах хранения, и из предка (с уже заполненными данными) легко получается потомок. Например, на первом этапе обработки я не знаю специфики учета товара и пишу его в класс "Какой-то товар". А в процессе обработки документов выясняется, что учет этого товара специфичен и нужно отнести его к подклассу "Промышленный товар" - это легко делается правкой глобала с данными. Превратить "Продовольственный товар" в "Промышленный" конечно, сложнее (индексы), но сложность тут оправдана отсутствием необходимости в такой операции в предметной области (обычно в этом не должно быть необходимости). Здесь же мне нужно, получив %XML.Document, заставить его вести себя как его наследника MYXML.Document. Подозреваю, что это сделать нельзя. Про то, что ИС не предоставило инструментов, я особо не заострял - так, попробовал их в очередной раз взбодрить, а то судя по соседней теме, с плюшками что-то не то, помните: «Ну и плюшки! Деньги дерёшь, а корицу жалеешь. Берегись!» Как разобрать xml - какбэ вопрос второй, что это не список, понятно. Но возможности поиска мне, например, не помешали бы. Опять же - я с xml плотно не работаю, в общем-то все проблемы всегда решаются... и эта тоже решится, глядишь и с Вашими подсказками (ща буду штудировать SAX и XPATH). ... |
|||
:
Нравится:
Не нравится:
|
|||
07.09.2012, 16:49 |
|
Как унаследоваться от классов пакета %XML?
|
|||
---|---|---|---|
#18+
я пока не совсем понял проблем с наследованием классов пакета XML пустой чистый класс с одним потомком, тем более не хранимый будет идентичен своему потомку авторЗдесь же мне нужно, получив %XML.Document, заставить его вести себя как его наследника MYXML.Document. Подозреваю, что это сделать нельзя.Вот тут тоже ничего не понял, и тем более какое это имеет отношение к %XML в целом. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.09.2012, 17:01 |
|
Как унаследоваться от классов пакета %XML?
|
|||
---|---|---|---|
#18+
DAiMor, спасибо, вот это помогает вроде (но нужно xpath еще копать): Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
А с наследованием - черт с ним, если вопрос не получился, значит сам не очень понимаю, что нужно ;) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.09.2012, 18:55 |
|
|
start [/forum/topic.php?fid=39&fpage=33&tid=1557386]: |
0ms |
get settings: |
7ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
44ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
41ms |
get tp. blocked users: |
2ms |
others: | 321ms |
total: | 447ms |
0 / 0 |