|
Dynamic array to XML
|
|||
---|---|---|---|
#18+
Всем привет, есть динамический массив в виде строки: DYN = "FirstName" : @AM : "Lastname" : @AM : "Address1" : @AM : "Address2" : @AM : "Phones" : @VM : "HomePhone" : @SM : "123456" : @VM : "MobilePhone" : @SM : "654321" : @SM : "0 654321" ....... ? @AM../@VM../@SM.. @AM - field marker @VM - value marker @SM - subvalue marker нужен следующий xml: <MyCustomer> <Name>FirstName</Name> <Surname>Surname</Surname> <Address1>Address1</Address1> <Address2>Address2<Address2> <Phones> <HomePhone>123456</HomePhone> <MobilePhone> <MobilePhone1>654321</MobilePhone1> <MobilePhone2>0 654321</MobilePhone2> <MobilePhone> </Phones> </MyCustomer> вот куда я смог дойти (познаний в xsl : new member) : '<?xml version="1.0" ?>' '<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">' '<xsl:template match="/">' '<mycustomer>' '<xsl:for-each select="array/data">' '<xsl:if test="@attribute=1">' '<firstname>' '<xsl:value-of select="."/>' '</firstname>' '</xsl:if>' '<xsl:if test="@attribute=2">' '<lastname>' '<xsl:value-of select="."/>' '</lastname>' '</xsl:if>' '<xsl:if test="@attribute=3">' '<address1>' '<xsl:value-of select="."/>' '</address1>' '</xsl:if>' '<xsl:if test="@attribute=4">' '<address2>' '<xsl:value-of select="."/>' '</address2>' '</xsl:if>' .. тут завис ) . XS := '<xsl:if test="@attribute=4 and value=1">' XS := '<Phones>' XS := '<xsl:value-of select="."/>' XS := '</Phones>' XS := '</xsl:if>' XS := '</xsl:for-each>' XS := '</mycustomer>' XS := '</xsl:template>' XS := '</xsl:stylesheet>' спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2012, 23:51 |
|
Dynamic array to XML
|
|||
---|---|---|---|
#18+
XSL не предназначен для изготовления XML из "массивов в виде строки". XSL предназначен для изготовления одного XML из другого. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2012, 07:39 |
|
Dynamic array to XML
|
|||
---|---|---|---|
#18+
evolution, вероятно вам надо: Код: xml 1.
система, которую вы используете, не стандартна для этого раздела, вам лучше обратится к документации на нее, или к разработчику. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2012, 11:02 |
|
Dynamic array to XML
|
|||
---|---|---|---|
#18+
mage.lanevolution, вероятно вам надо: Код: xml 1.
система, которую вы используете, не стандартна для этого раздела, вам лучше обратится к документации на нее, или к разработчику. ок, так думаю правильнее: <array> <data attribute="1" value="1" subvalue="1">...</data> .. </array> attribute - @AM value - @VM subvalue - @SM спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2012, 11:22 |
|
Dynamic array to XML
|
|||
---|---|---|---|
#18+
есть идеи? подчеркну что структура строки (записи) известна спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2012, 14:25 |
|
Dynamic array to XML
|
|||
---|---|---|---|
#18+
evolution, вы XML полностью приведите, не очень понятно, что обрабатывать, и совсем не понятно что такое attribute="1" value="1" subvalue="1" по поводу первого можно предположить, что это какая-то связь между 1 и Name, 2 и Surname судя по вашему XSL, но value и subvalue - это полная загадка. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2012, 14:36 |
|
Dynamic array to XML
|
|||
---|---|---|---|
#18+
mage.lanevolution, вы XML полностью приведите, не очень понятно, что обрабатывать, и совсем не понятно что такое attribute="1" value="1" subvalue="1" по поводу первого можно предположить, что это какая-то связь между 1 и Name, 2 и Surname судя по вашему XSL, но value и subvalue - это полная загадка. перефразирую: входной XML : <?xml version="1.0" encoding="UTF-8"?> <array> <data attribute="1" value="1" subvalue="1">FirstName</data> <data attribute="2" value="1" subvalue="1">LastName</data> <data attribute="3" value="1" subvalue="1">Address1</data> <data attribute="4" value="1" subvalue="1">Address2</data> <data attribute="5" value="1" subvalue="1">Phones</data> <data attribute="5" value="2" subvalue="1">HomePhone</data> <data attribute="5" value="2" subvalue="2">123465</data> <data attribute="5" value="3" subvalue="1">MobilePhone</data> <data attribute="5" value="3" subvalue="2">654321</data> <data attribute="5" value="3" subvalue="3">0 654321</data> </array> DYN = "FirstName" : @AM : "Lastname" : @AM : "Address1" : @AM : "Address2" : @AM : "Phones" : @VM : "HomePhone" : @SM : "123456" : @VM : "MobilePhone" : @SM : "654321" : @SM : "0 654321" @AM , @VM и @SM - это разделители (attribute - @AM, value - @VM , subvalue - @SM) на выходе нужен: <MyCustomer> <Name>FirstName</Name> <Surname>Surname</Surname> <Address1>Address1</Address1> <Address2>Address2<Address2> <Phones> <HomePhone>123456</HomePhone> <MobilePhone> <MobilePhone1>654321</MobilePhone1> <MobilePhone2>0 654321</MobilePhone2> </MobilePhone> </Phones> </MyCustomer> ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2012, 14:59 |
|
Dynamic array to XML
|
|||
---|---|---|---|
#18+
mage.lanevolution, вы XML полностью приведите, не очень понятно, что обрабатывать, и совсем не понятно что такое attribute="1" value="1" subvalue="1" по поводу первого можно предположить, что это какая-то связь между 1 и Name, 2 и Surname судя по вашему XSL, но value и subvalue - это полная загадка. строка , есть dynamic multivalue array. сушествует функция куда можно передать xsl и получить XML на выходе.Если xsl не задан , на выходе получается data/array... мне нужен xsl который , трансформирует входной формат XML (data/array) в "приведенный формат как пример" на выходе. Спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2012, 15:10 |
|
Dynamic array to XML
|
|||
---|---|---|---|
#18+
evolutionв "приведенный формат как пример" на выходе.А имена выходных узлов откуда брать? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2012, 15:26 |
|
Dynamic array to XML
|
|||
---|---|---|---|
#18+
_Vasilisk_evolutionв "приведенный формат как пример" на выходе.А имена выходных узлов откуда брать? я задаю в сам, но в принципе это есть - attribute="1" value="1" subvalue="1" '<?xml version="1.0" ?>' '<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">' '<xsl:template match="/">' '<mycustomer>' '<xsl:for-each select="array/data">' '<xsl:if test="@attribute=1">' '<firstname>' '<xsl:value-of select="."/>' '</firstname>' '</xsl:if>' '<xsl:if test="@attribute=2">' '<lastname>' '<xsl:value-of select="."/>' '</lastname>' '</xsl:if>' ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2012, 16:01 |
|
Dynamic array to XML
|
|||
---|---|---|---|
#18+
evolution, как-то так: Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2012, 18:45 |
|
|
start [/forum/topic.php?fid=14&msg=37804611&tid=1332708]: |
0ms |
get settings: |
12ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
164ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
60ms |
get tp. blocked users: |
2ms |
others: | 253ms |
total: | 530ms |
0 / 0 |