2013-11-11 2 views

ответ

0

Концепция вы ищете называется предикат - найти ROW элементы, которые имеют INSTANCE_NAME из DEF вы можете использовать

/RECORDSET/ROW[INSTANCE_NAME = 'DEF'] 

и так, чтобы извлечь их значения, которые вы будете использовать

/RECORDSET/ROW[INSTANCE_NAME = 'DEF']/VALUE 

Вы можете прочитать квадратные скобки, как «где» или «таким образом, что», то есть найти RecordSet элемент (ы), то в каждом из них найти ROW элемент (-ы) такой, чтоINSTANCE_NAME = 'DEF', и в каждом из них найти VALUE элемент (ы).

0

При выборе значения VALUE на основе INSTANCE_NAME

XML:

<RECORDSET> 
<ROW> 
<INSTANCE_NAME>ABC</INSTANCE_NAME> 
<VALUE>12000</VALUE> 
</ROW> 
<ROW> 
<INSTANCE_NAME>DEF</INSTANCE_NAME> 
<VALUE>1500</VALUE> 
</ROW> 
</RECORDSET> 

Xsl:

<?xml version="1.0" encoding="UTF-8"?> 
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> 
    <xsl:output omit-xml-declaration="yes" indent="yes" /> 
    <xsl:strip-space elements="*" /> 
    <xsl:template match="RECORDSET"> 
     <xsl:value-of select="ROW[INSTANCE_NAME = 'DEF']/VALUE" /> 
    </xsl:template> 
</xsl:stylesheet> 

Выход:

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