使用XSLT合并两个XML文件(具有不同的标记)

时间:2017-11-02 22:18:13

标签: xml xslt merge

我正在尝试将两个不同的XML文件(具有不同的布局)合并到一个XSL文件中。我想将它们与名称/标题值相匹配。我不是一位经验丰富的XML程序员,但我想尽可能多地学习。

我一直在寻找与我类似的其他问题,但是他们对我没有任何好处,所以请借给我你的知识:)

turistvegene - 数据 - ut.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <?xml-stylesheet type="text/xsl" href="turistveier_collect2.xsl"?>

            <turistveg-attraksjon>
            <title>Hamningberg</title>
            <latitude>70.54112485</latitude>
            <longitude>30.6099191</longitude>
            <description_no>
                  <p>Ytterst på Varangerhalvøya mot Ishavet ligger det fraflyttede fiskeværet Hamningberg. Fiskeværet danner et tradisjonelt finnmarksmiljø, og har sin helt spesielle sjel med bygninger fra før andre verdenskrig. Noen av dem er russiske laftede tømmerhus fra 1800-tallet.</p>
            </description_no>

            </turistveg-attraksjon>

------------------THIS IS THE ONE I WANT TO MERGE-------------------

            <turistveg-attraksjon>
            <title>Nesseby kirke</title>
            <latitude>70.14559409</latitude>
            <longitude>28.8631532</longitude>
            <description_no>
                  <p>Fra Nesseby er det kort veg ned til fjorden og landemerket Nesseby kirke. Tyskernes brente jords taktikk under andre verdenskrig, etterlot Finnmark og Nord-Troms i flammer. Som et under ble Nesseby kirke stående urørt. Kirken er fra 1858 med barokk altertavle fra ca. 1720.</p>
            </description_no>

            </turistveg-attraksjon>

------------------------------------------------------------------

nesseby_vaer.xml

        <?xml version="1.0" encoding="utf-8"?>
        <weatherdata>
          <location>
            <name>Nesseby kirke</name>
            <type>Kirke</type>
            <country>Norge</country>
            <timezone id="Europe/Oslo" utcoffsetMinutes="60" />
            <location altitude="0" latitude="70.1449466334966" longitude="28.8606073977944" geobase="ssr" geobaseid="2324746" />
          </location>
          <sun rise="2017-10-30T07:27:11" set="2017-10-30T14:07:53" />
          <forecast>
            <text>
              <location name="Nesseby">
                <time from="2017-10-30" to="2017-10-30">
                  <title>mandag</title>

--------    I ONLY WANT THIS <body> DATA ------------

 <body>Finnmark: I kyst- og fjordstrøkene vestlig liten kuling utsatte steder, periodevis stiv kuling på kysten i nord. Snøbyger, få eller ingen byger lengst øst og på Vidda.</body> 

----------------------------------------------------

                </time>
                <time from="2017-10-31" to="2017-10-31">
                  <title>tirsdag</title>
                  <body>Finnmark: Første del av dagen vestlig liten kuling utsatte steder i kyst- og fjordstrøkene, ellers bris. Snøbyger, få eller ingen byger i indre strøk.</body>
                </time>

结果应该是这样的

        <turistveg-attraksjon>
        <title>Hamningberg</title>
        <latitude>70.54112485</latitude>
        <longitude>30.6099191</longitude>
        <description_no>
              <p>Ytterst på Varangerhalvøya mot Ishavet ligger det fraflyttede fiskeværet Hamningberg. Fiskeværet danner et tradisjonelt finnmarksmiljø, og har sin helt spesielle sjel med bygninger fra før andre verdenskrig. Noen av dem er russiske laftede tømmerhus fra 1800-tallet.</p>
        </description_no>

        </turistveg-attraksjon>
        <turistveg-attraksjon>
        <title>Nesseby kirke</title>
        <latitude>70.14559409</latitude>
        <longitude>28.8631532</longitude>
        <description_no>
              <p>Fra Nesseby er det kort veg ned til fjorden og landemerket Nesseby kirke. Tyskernes brente jords taktikk under andre verdenskrig, etterlot Finnmark og Nord-Troms i flammer. Som et under ble Nesseby kirke stående urørt. Kirken er fra 1858 med barokk altertavle fra ca. 1720.</p>
        </description_no>

            <body>Finnmark: I kyst- og fjordstrøkene vestlig liten kuling utsatte steder, periodevis stiv kuling på kysten i nord. Snøbyger, få eller ingen byger lengst øst og på Vidda.</body>

        </turistveg-attraksjon>

1 个答案:

答案 0 :(得分:0)

你想要像

这样的东西
<xsl:template match="turistveg-attraksjon">
  <xsl:copy>
    <xsl:copy-of select="*"/>
    <xsl:copy-of select="document('nesseby_vaer.xml')
        /weatherdata[location/name=current()/title)//time[1]/body"/>
  </xsl:copy>
</xsltemplate>