|
Импорт XML в Cache
|
|||
---|---|---|---|
#18+
Добрый день, столкнулся с проблемой не могу импортировать простенький XML в Cache, XML вида:<response><state attr1="asss" attr2="ssss" attr3="sdssd">deliver</state></response>для импорта создал 2 класса: Код: plaintext
{ Relationship StateInfo As class2 (XMLNAME = "state", XMLPROJECTION = "ELEMENT") [ Cardinality = children, Inverse = ParentLink ]; }и Код: plaintext
{ Property attr1 As %String(XMLNAME = "attr1", XMLPROJECTION = "ATTRIBUTE"); Property attr2 As %String(XMLNAME = "attr2", XMLPROJECTION = "ATTRIBUTE"); Property attr3 As %String(XMLNAME = "attr3", XMLPROJECTION = "ATTRIBUTE"); Relationship ParentLink As class1 [ Cardinality = parent, Inverse = StateInfo ]; }сам импорт: Код: plaintext
d reader.OpenStream(stream) d reader.Correlate("state","class1") while reader.Next(.response,.sc) { s attr1=response.attr1 w "attr1="_attr1,! }при запуске программы возникает следующая ошибка: Код: plaintext
Как я понимаю возникает ошибка из за innerHTML тега state, а как правильно описать его не знаю.. требуется помощь знающих людей :) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2014, 12:14 |
|
Импорт XML в Cache
|
|||
---|---|---|---|
#18+
iseekyouu, Попробуйте добавить в class2 свойство с XMLPROJECTION = "CONTENT":Property attr4 As %String(XMLPROJECTION = "CONTENT"); http://docs.intersystems.com/cache20141/csp/docbook/DocBook.UI.Page.cls?KEY=GXMLPROJ_basics#GXMLPROJ_B16278 Ну и в самом импорте нужно делать Correlate к тэгу response: d reader.Correlate("response","class1") while reader.Next(.response,.sc) { w "attr1="_response.StateInfo.GetAt(1).attr1,! } ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2014, 14:13 |
|
Импорт XML в Cache
|
|||
---|---|---|---|
#18+
iseekyouu , Чтобы понять как импортировать, нужно сначала посмотреть, что получится при экспорте. class1Class my.class1 Extends (%RegisteredObject, %XML.Adaptor) { Relationship StateInfo As my.class2(XMLNAME = "state", XMLPROJECTION = "ELEMENT") [ Cardinality = children, Inverse = ParentLink ]; }class2Class my.class2 Extends (%RegisteredObject, %XML.Adaptor) { Property attr1 As %String(XMLNAME = "attr1", XMLPROJECTION = "ATTRIBUTE"); Property attr2 As %String(XMLNAME = "attr2", XMLPROJECTION = "ATTRIBUTE"); Property attr3 As %String(XMLNAME = "attr3", XMLPROJECTION = "ATTRIBUTE"); Property attr4 As %String(XMLPROJECTION = "CONTENT"); Relationship ParentLink As my.class1 [ Cardinality = parent, Inverse = StateInfo ]; }Экспорт s cl1=##class(my.class1).%New() s cl2=##class(my.class2).%New() s cl2.attr1="asss" s cl2.attr2="ssss" s cl2.attr3="sdssd" s cl2.attr4="deliver" s cl2.ParentLink=cl1 d cl1.XMLExportToString(.r,"response") w r,! Код: plaintext 1.
Поэтому импорт, может быть следующим:Импорт №1 s reader = ##class(%XML.Reader).%New() d reader.OpenString("<response><state attr1=""asss"" attr2=""ssss"" attr3=""sdssd"">deliver</state></response>") d reader.Correlate("state","my.class2") while reader.Next(.response,.sc) { w "attr1="_response.attr1,! w "attr2="_response.attr2,! w "attr3="_response.attr3,! w "attr4="_response.attr4,! } d reader.OpenString("<response><state attr1=""asss"" attr2=""ssss"" attr3=""sdssd"">deliver</state></response>") d reader.Correlate("response","my.class1") while reader.Next(.response,.sc) { w "attr1="_response.StateInfo.GetAt(1).attr1,! w "attr2="_response.StateInfo.GetAt(1).attr2,! w "attr3="_response.StateInfo.GetAt(1).attr3,! w "attr4="_response.StateInfo.GetAt(1).attr4,! } Код: plaintext 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2014, 15:17 |
|
Импорт XML в Cache
|
|||
---|---|---|---|
#18+
Благодарю за помощь! Не хватало именно CONTENT в class2 : Код: plaintext
Corellate достаточно тогда делать к тегу state сразу: Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2014, 06:27 |
|
|
start [/forum/topic.php?fid=39&fpage=19&tid=1556844]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
28ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
48ms |
get tp. blocked users: |
2ms |
others: | 277ms |
total: | 402ms |
0 / 0 |