2014-12-03 2 views
1

Мне нужно преобразовать XML в простой XML с помощью XSL из:Как превратить multivalues ​​атрибут XML с помощью XSL

<LongAssetInfoMulti attrTagName.s="tagName" attrName.s="tagName" values.ll="14491 14553 14568 14581 15239 15240 15241"/> 

к:

<tagName>14491</tagName> 
<tagName>14553</tagName> .... 

Я Allready сделал это:

<xsl:template match="/"> 
    <xsl:variable name="test" select="//LongAssetInfoMulti/@values.ll"/> 
    <xsl:for-each select="$test"> 
      <xsl:value-of select="$test"></xsl:value-of> 
    </xsl:for-each> 
</xsl:template> 

Кто-нибудь знает, как анализировать несколько значений атрибутов?

+0

Вам нужно * * разметить значения. Какой процессор XSLT вы используете? –

ответ

0

Как michael.hor257k сказал, что мы можем использовать лексемизацию, как показано ниже:

<xsl:stylesheet version="3.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:ext="http://www.courts.state.mn.us/ProtectionOrderExtension/1.0" xmlns:nc="http://niem.gov/niem/niem-core/2.0" extension-element-prefixes="ext nc" exclude-result-prefixes="mscef msxsl exsl ext"> 
    <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/> 
    <xsl:template match="/"> 
     <xsl:variable name="test" select="//LongAssetInfoMulti/@values.ll"/> 
     <xsl:for-each select="tokenize($test, ' ')"> 
      <xsl:sort select="$test"/> 
      <tagname> 
       <xsl:value-of select="."/> 
      </tagname> 
     </xsl:for-each> 
    </xsl:template> 
</xsl:stylesheet> 
Смежные вопросы