2015-01-20 5 views
0

Как обратный случай this post, как можно преобразовать содержимое XML-документа в массив с использованием XSLT.Преобразование содержимого XML в массив

Для этого:

<Records> 
    <item>value1</item> 
    <item>value2</item> 
    <item>value3</item> 
    <item>value4</item> 
    <item>value5</item> 
</Records> 

Желаемый результат что-то вроде этого:

[value1, value2, value3, value4, value5] 

Что идея?

+0

Какой язык? – leppie

+0

@leppie, Извините, я забыл упомянуть XSLT :) – Eilia

ответ

0

Надеется, что это помогает ..

<?xml version="1.0" encoding="utf-8"?> 
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" exclude-result-prefixes="xsl"> 
    <xsl:output method="text"/> 
    <xsl:template match="/"> 
    <xsl:variable name="countItems" select="count(Records/item)"/> 
    [<xsl:for-each select="Records/item"> 
     <xsl:value-of select="."/> 
     <xsl:choose> 
     <xsl:when test="position()=$countItems"/> 
     <xsl:otherwise>,</xsl:otherwise> 
     </xsl:choose> 
    </xsl:for-each>] 
    </xsl:template> 
</xsl:stylesheet> 

XSLT 1.0 может быть использовано для создания результирующего XML, текстовый или HTML-файла из исходного файла XML. Вы можете получить результирующие данные из файла, созданного с помощью XSLT

+0

Спасибо за это, он работает. Но я думаю, что это не то, что я ищу. Еще один вопрос: есть ли встроенная структура массива в XSLT. Фактически, я хочу манипулировать массивом как структурой данных w.r.t его индексом. Этот результат способен это сделать? Есть идеи? – Eilia

+0

Хорошо XSLT работает только с данными структуры xml. Что вы можете сделать, это создать переменную в xslt, которая содержит пару ключ/значение, а затем по этой переменной вы можете найти значение с помощью клавиши – Saurav

+0

Спасибо за ответ. Я постараюсь. Конечно, это (http://stackoverflow.com/questions/11076920/implementing-key-value-concept-in-xslt), по-видимому, является решением для этого. – Eilia

Смежные вопросы