|
обработка элементов xml
|
|||
---|---|---|---|
#18+
Добрый день! Есть xml <Data> <FinData> <AAA Element1="123" Element2="456" Element3="789" ....> <BBB Element4="123" Element5="456" Element3="" ....> ... <ZZZ Element6="123" Element7="456" Element3="" ....> </FinData> </Data> Нужно получить <Data> <FinData> <AAA Element1="123" Element2="456" Element3="789" ....> <BBB Element4="123" Element5="456" Element3="0" ....> ... <ZZZ Element6="123" Element7="456" Element3="0" ....> </FinData> </Data> Т.е. во всем xml документе нужно найти пустые Element3 и записать значение 0. Не пустые Element3 оставить как есть. Подскажите над реализацией. Следующие варианты не работают: 1. <xsl:template name="FinData"> <xsl:element name="FinData"> <xsl:copy-of select="/Data/FinData/@*" /> <xsl:copy-of select="/Data/FinData/*" /> <xsl:for-each select="FinData//*[@Element3='']"> <xsl:attribute name="Element3"> <xsl:value-of select="0" /> </xsl:attribute> </xsl:for-each> </xsl:element> </xsl:template> 2. <xsl:template name="FinData"> <xsl:element name="FinData"> <xsl:copy-of select="/Data/FinData/@*" /> <xsl:copy-of select="/Data/FinData/*" /> <xsl:for-each select="FinData//@Element3[.='']"> <xsl:call-template name="Element3" /> </xsl:for-each> </xsl:element> </xsl:template> <xsl:template name="Element3"> <xsl:attribute name="Element3"> <xsl:value-of select="0" /> </xsl:attribute> </xsl:template> В этом случае возникает ошибка: An attribute node (Element3) cannot be created after the children of the containing element ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2013, 11:52 |
|
обработка элементов xml
|
|||
---|---|---|---|
#18+
Забыл написать, исходный xml файл очень большой и "сложный", поэтому обработка каждого элемента по отдельности проблематично. Есть ли другие варианты? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2013, 12:46 |
|
обработка элементов xml
|
|||
---|---|---|---|
#18+
Alexey_Ab, Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2013, 14:36 |
|
обработка элементов xml
|
|||
---|---|---|---|
#18+
Один шаблон лишний. Можно так: Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2013, 15:35 |
|
|
start [/forum/topic.php?fid=14&fpage=16&tid=1332446]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
88ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
2ms |
others: | 14ms |
total: | 191ms |
0 / 0 |