2016-07-05 1 views
0

Удалить пространство имен, атрибуты, XSI от ответа Soap с помощью кода или XSLTВыкрутить пространства имен, атрибуты, Xsi от ответа Soap с помощью кода или XSLT

Хотят превратить ответ мыла для нормальной XML (без пространств имен, atributes) с использованием C# (Serializer, XMLDoc, XDoc) или XSLT.

вот ответ на мыло.

  <?xml version="1.0" encoding="UTF-8"?> 
      <SOAP-ENV:Envelope 
       xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" 
       xmlns:ns1="urn:Magento" 
       xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
       xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> 
       <SOAP-ENV:Body> 
        <ns1:catalogProductInfoResponse> 
         <info xsi:type="ns1:catalogProductReturnEntity"> 
          <product_id xsi:type="xsd:string">3459</product_id> 
          <sku xsi:type="xsd:string">HK-BP001</sku> 
          <categories SOAP-ENC:arrayType="xsd:string[0]" xsi:type="ns1:ArrayOfString"/> 
          <websites SOAP-ENC:arrayType="xsd:string[7]" xsi:type="ns1:ArrayOfString"> 
           <item xsi:type="xsd:string">1</item>         
          </websites> 
          <created_at xsi:type="xsd:string">2016-04-19 01:45:35</created_at> 
          <has_options xsi:type="xsd:string">1</has_options> 
          <special_from_date xsi:type="xsd:string">2016-04-19 00:00:00</special_from_date> 
          <tier_price SOAP-ENC:arrayType="ns1:catalogProductTierPriceEntity[0]" xsi:type="ns1:catalogProductTierPriceEntityArray"/> 
          <custom_design xsi:type="xsd:string">ultimo/default</custom_design> 
          <enable_googlecheckout xsi:type="xsd:string">1</enable_googlecheckout> 
         </info> 
        </ns1:catalogProductInfoResponse> 
       </SOAP-ENV:Body> 
      </SOAP-ENV:Envelope> 

я хочу трансформируются XML, как:

  <?xml version="1.0" encoding="UTF-8"?> 
      <Envelope> 
       <Body> 
        <catalogProductInfoResponse> 
         <info> 
          <product_id>3459</product_id> 
          <sku>HK-BP001</sku> 
          <categories/> 
          <websites> 
           <item>1</item>        
          </websites> 
          <created_at>2016-04-19 01:45:35</created_at> 
          <has_options>1</has_options> 
          <special_from_date>2016-04-19 00:00:00</special_from_date> 
          <tier_price/> 
          <custom_design>ultimo/default</custom_design> 
          <enable_googlecheckout>1</enable_googlecheckout> 
         </info> 
        </catalogProductInfoResponse> 
       </Body> 
      </Envelope> 

ответ

1

Вы можете использовать XSLT:

<xsl:template match="*"> 
    <xsl:element name="{local-name()}"> 
    <xsl:apply-templates/> 
    </xsl:element> 
</xsl:template> 
+0

Благодаря Мартин, он работает :) – vibs2003

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