【问题标题】:EDI XML To XML transformation using XSLT使用 XSLT 的 EDI XML 到 XML 转换
【发布时间】:2017-07-02 21:04:22
【问题描述】:

我使用 EDIFabric 将以下 XML 从 EDI 文件转换为 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 转换?

【问题讨论】:

    标签: xml xslt edi edifabric


    【解决方案1】:

    下面会做,将 Root 重命名为您的根目录:

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

    【讨论】:

    • 为什么你认为你需要第一个模板?
    • 应用第二个模板 :) 没有必要,只是一个偏好问题。
    猜你喜欢
    • 2010-11-21
    • 2020-07-28
    • 2014-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-02
    相关资源
    最近更新 更多