2017-02-05 12 views
0

Ниже вводится:шаблон XLST использоваться для удаления дополнительных заявлений от CreateInterfaceRequest тега

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"> 
    <s:Body> 
    <CreateInterfaceRequest Destination="KISTA" CreatedBy="ONETM"> 
     <Source_ObjectID>TEST24</Source_ObjectID> 
    </CreateInterfaceRequest> 
    </s:Body> 
</s:Envelope> 

И я хочу выход быть

<CreateInterfaceRequest> /* this needs to be as it is 
    <Source_ObjectID>TEST24</Source_ObjectID> 
</CreateInterfaceRequest> 

с приложениями SOAP. Удалить (Destination = "Киста" CreatedBy = "ONETM")

Я использовал этот шаблон XSLT код соответствия

<xsl:template match="CreateInterfaceRequest/*"> 
    <CreateInterfaceRequest> 
    <xsl:apply-templates/> 
    </CreateInterfaceRequest> 
<xsl:template> 

но дает ошибку

матч шаблон не может быть объявлена ​​в ТЕЛЕ

+0

Можете ли вы изменить свой вопрос, чтобы показать матч шаблон XSLT вы использовали? Спасибо! –

+1

@ShilpaSegu: пожалуйста, [edit] (http://stackoverflow.com/posts/42051249/edit) вопрос вместо добавления комментариев. – mzjn

+0

Done..Написать мне знать, если вы хотите, чтобы я что-то добавил –

ответ

0

Этот шаблон является одной из возможностей для достижения этой цели. Он просто удаляет пространство имен узла Source_ObjectID и копирует все узлы CreateInterfaceRequest (а также удаляет все его атрибуты).

<?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" /> 

    <xsl:template match="//CreateInterfaceRequest"> 
    <CreateInterfaceRequest> 
     <xsl:apply-templates select="*" /> 
    </CreateInterfaceRequest> 
    </xsl:template> 

    <xsl:template match="Source_ObjectID"> 
    <xsl:element name="Source_ObjectID" namespace=""> 
     <xsl:copy-of select="node()|@*" /> 
    </xsl:element> 
    </xsl:template> 

</xsl:stylesheet> 

Выход:

<?xml version="1.0"?> 
<CreateInterfaceRequest> 
    <Source_ObjectID>TEST24</Source_ObjectID> 
</CreateInterfaceRequest> 
+0

Im get error as: xsl: template 'не может быть дочерним элементом элемента xsl: template. Где этот тег будет помещен. –

+0

@ShilpaSegu: Ваш вопрос должен быть неправильным, потому что в моем ответе нет '' в качестве дочернего элемента другого '', который вы можете легко проверить. – zx485