2015-02-26 3 views
0

У меня есть следующий XML-файл:получить WSDL значение из XML-файла

<properties> 
    <type>1</type> <!-- 1 or 2> 

    <prop1> test </prop1> 
    <prop2> test2 </prop2> 
</properties> 

и файл WSDL:

<definitions> 
    <xmlProp>test</xmlProp> 
</definitions> 

Я хочу WSDL тег "xmlProp" получить значение из значений prop1 XML-тега. Кроме того, я хочу иметь инструкцию if в wsdl, и если тег xml «type» равен 1, тег wsdl xmlProp получает значение prop1, иначе получает значение prop2.

Есть ли способ сделать это?

ответ

0

У меня есть подход XSL, который должен работать на вас.

XML-файл:

<?xml version="1.0" encoding="utf-8"?> 
<?xml-stylesheet type="text/xsl" href="YourFile.xslt"?> 

<properties> 
    <type>1</type> <!-- 1 or 2>--> 
    <prop1> test </prop1> 
    <prop2> test2 </prop2> 
</properties> 

XSLT-файл:

<?xml version="1.0" encoding="utf-8"?> 
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
    <xsl:output method="xml" indent="yes"/> 

    <xsl:template match="/"> 
    <xsl:element name="definitions"> 
     <xsl:element name="xmlProp"> 
     <xsl:choose> 
      <xsl:when test="/properties[type = 1]"> 
      <xsl:value-of select="/properties/prop1" /> 
      </xsl:when> 
      <xsl:otherwise> 
      <xsl:value-of select="/properties/prop2" /> 
      </xsl:otherwise> 
     </xsl:choose> 
     </xsl:element> 
    </xsl:element> 
    </xsl:template> 
</xsl:stylesheet> 

Выход:

<?xml version="1.0" encoding="utf-8"?> 
<definitions> 
    <xmlProp> test </xmlProp> 
</definitions> 

Я надеюсь, что это помогает.

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