2016-02-06 4 views
-1

Я пытаюсь добавить значение xml в атрибут xslt. Пробовал различные решения, но никто не работает. См. Ниже XML и соответствующий XSLT-код.Как заполнить атрибут xslt из xml

XML:

<root> 
    <orderNo>123</orderNo> 
    </root> 

XSLT:

<xsl:stylesheet version="1.0" 
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
    <xsl:output omit-xml-declaration="yes"/> 
    <xsl:template match="/"> 
     <soapenv:Envelope xmlns:read="http:/xxxxxx" 
      xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> 
     <soapenv:Header/> 
     <soapenv:Body> 
      <read:Shipment 
      orderNo="<xsl:select="/jsonToXML[@orderNo]"/>" 
      ShipNode="?"> 
     </soapenv:Body> 
     </soapenv:Envelope> 
    </xsl:template> 
    </xsl:stylesheet> 

Пробовал различные решения, но ни один не работает.

ответ

1

Попробуйте AVT ...

<read:Shipment orderNo="{root/orderNo}" ShipNode="?"/> 

заметить также, что XPath в АВТ изменилось. Элемент jsonToXML отсутствует, а orderNo - это элемент, а не атрибут.

+0

:: возвращает мне пустое значение. –

+0

@ChetanPotdar - Возможно, вы не видели моего редактирования. Ваш xpath должен измениться. –

+0

Работает сейчас ... Спасибо –

-2

Вы пробовали -

<xsl:value-of select="name/@orderNo" /> 
+0

Спасибо Ankit, но я получаю сообщение об ошибке «Не удалось сохранить: XSL отсутствует или недействителен. Значение атрибута« orderNo », связанное с типом элемента« read: Shipment », не должно содержать символ« <». –

+0

Это не работает, так как вы не можете использовать 'xsl: value-of' внутри атрибута (двойные кавычки' select = 'mess с двойными кавычками атрибута). – lfurini

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