首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用XSLT将EDI XML转换为XML

使用XSLT将EDI XML转换为XML
EN

Stack Overflow用户
提问于 2017-02-14 22:15:09
回答 1查看 639关注 0票数 0

我有以下XML,我使用EDIFabric和EDI文件将其转换为XML。

代码语言:javascript
复制
<?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节点,如下所示:

代码语言:javascript
复制
<City>Harrisburg</City>
<State>PA</State>
<PostalCode>17109</PostalCode>
<Country>US</Country>

XSLT转换需要什么?

EN

回答 1

Stack Overflow用户

发布于 2017-06-21 03:49:37

如下所示,将Root重命名为您的根目录:

代码语言:javascript
复制
<?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
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42228442

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档