2017-02-14 13 views
0

EDIFabricからEDIファイルをXMLに変換した次のXMLがあります。EDI XSLTを使用したXMLからXMLへの変換

<?xml version="1.0" encoding="UTF-8"?> 
<M_856 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="www.edifabric.com/x12"> 
    <S_N3> 
     <D_166_1>UNION SQUARE IND PK</D_166_1> 
     <D_166_2>909 KATIE COURT</D_166_2> 
    </S_N3> 
    <S_N4> 
     <D_19_1>Harrisburg</D_19_1> 
     <D_156_2>PA</D_156_2> 
     <D_116_3>17109</D_116_3> 
     <D_26_4>US</D_26_4> 
    </S_N4>   
    <S_SE> 
     <D_96_1>22</D_96_1> 
     <D_329_2>1845</D_329_2> 
    </S_SE> 
</M_856> 

私は次のようにすべてのS_N4ノードを抽出したいと思います:

<City>Harrisburg</City> 
<State>PA</State> 
<PostalCode>17109</PostalCode> 
<Country>US</Country> 

XSLT変換が必要なもの?

答えて

0

以下のルートがあるものは何でもへのルートの名前を変更し、どうなる:

<?xml version="1.0" encoding="UTF-16"?> 
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl s0" version="1.0" xmlns:s0="www.edifabric.com/x12"> 
    <xsl:output omit-xml-declaration="yes" method="xml" version="1.0" /> 
    <xsl:template match="/"> 
    <xsl:apply-templates select="/s0:M_856" /> 
    </xsl:template> 
    <xsl:template match="/s0:M_856"> 
    <Root> 
     <City> 
     <xsl:value-of select="s0:S_N4/s0:D_19_1/text()" /> 
     </City> 
     <State> 
     <xsl:value-of select="s0:S_N4/s0:D_156_2/text()" /> 
     </State> 
     <PostalCode> 
     <xsl:value-of select="s0:S_N4/s0:D_116_3/text()" /> 
     </PostalCode> 
     <Country> 
     <xsl:value-of select="s0:S_N4/s0:D_26_4/text()" /> 
     </Country> 
    </Root> 
    </xsl:template> 
</xsl:stylesheet> 
+0

をあなたが第一のテンプレートが必要だと思うのはなぜ? –

+0

2番目のテンプレートを適用する:)本当に必要なのは好みの問題だけです。 –

+0

https://www.w3.org/TR/xslt/#built-in-rule –

関連する問題