2013-09-27 4 views
0

У меня есть сходные узлы, и я хочу, чтобы значение из каждого набора узлов было аккуратным. Если я даю XPATH, он принимает как одну строку, так и ниже 203205 и USIND. Я хочу, чтобы это было раздельно и ясно. например, 203, 205 или США, IND. Помните, что размер является динамическим, и я не могу знать значение перед рукой, чтобы сделать подстроку и извлечь. Я должен дифференцироваться на уровне узла. Пожалуйста, предложите.Извлечение значений frm аналогичных узлов

<ResultNode> 
    <PIN>202</PIN> 
    <COUNTRY>US</COUNTRY> 
</ResultNode> 
<ResultNode> 
    <PIN>203</PIN> 
    <COUNTRY>IND</COUNTRY> 
</ResultNode> 

С уважением.

+0

Что такое XSL, как вы используете в настоящее время? Можете ли вы изменить это на свой вопрос? –

+0

Извините, я не могу скопировать мой код из-за ограничений :( – Mano

+0

Без этого ваш вопрос, скорее всего, будет закрыт, потому что он не показывает никаких исследований. В принципе, он должен показать, что вы пытались и почему он не работал В противном случае любой ответ, который вы получите, будет спекуляцией с нашей стороны. –

ответ

0

Вы не упомянули версию XSLT/XPath, которую используете.

В XPath 2.0 вы можете сделать

string-join(//PIN, ', ') 

, который производит выходной

202, 203 

В XSLT 2.0 вы можете сделать

<xsl:value-of select="//PIN" separator=", " /> 

В XSLT 1.0 вы могли бы сделать, например

<xsl:for-each select="//PIN"> 
    <xsl:value-of select="." /> 
    <xsl:if test="position()!=last()"> 
     <xsl:text>, </xsl:text> 
    </xsl:if> 
</xsl:for-each> 
Смежные вопросы