ibnTeo |
<document name="document_1"> <title>Document 1</title> <data id="1" maxlength="1000"> Text <b>bold</b> text. </data> </document>
s ^document("$last")=2 s ^document("@name")="document_1" s ^document(1,"title")="Document 1" s ^document(2,"data","$last")=3 s ^document(2,"data","@id")=1 s ^document(2,"data","@maxlength")=1000 s ^document(2,"data",1,"#text")="Text " s ^document(2,"data",2,"b")="bold" s ^document(2,"data",3,"#text")=" text."
|
Я бы предложил более удобную структуру:
^doc(DocId)=DocName~title
^doc(DocId,"data",1)="1000~bold"
^doc(DocId,"data",1,"text",1)="..."
^doc(DocId,"data",2)="..."
^doc(DocId,"data",2,"text",1)="..."
...
Это навскидку. Если более конкретно - нужно смотреть.
Вставка узлов - дело простое. Только не забывайте о сортировке.
В случае обязательного сохранения последовательности - используйте
числовые индексы, тогда вставка в конкретное место между двумя индексами
реализуется просто: i3 = i2 - i1 / 2. Хотя со строковыми тоже просто.
Это же M, здесь с данными можно делать все, что душе угодно.