Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
通过XSLT将XML转换为XML 队名 游戏1 锦标赛名称 1. 10600 4454 锦标赛名称 3. 10600 4454 玩家1 Def 2011-01-14 国 A- 普拉耶里诺 Att 漫游者 积极乐观的 马特 库克 22 柜台 A- 普拉耶里诺 Att 漫游者 积极乐观的 马特 库克 22 柜台 公司名称 广告 老鼠 键盘 耳机_Xml_Xslt - Fatal编程技术网

通过XSLT将XML转换为XML 队名 游戏1 锦标赛名称 1. 10600 4454 锦标赛名称 3. 10600 4454 玩家1 Def 2011-01-14 国 A- 普拉耶里诺 Att 漫游者 积极乐观的 马特 库克 22 柜台 A- 普拉耶里诺 Att 漫游者 积极乐观的 马特 库克 22 柜台 公司名称 广告 老鼠 键盘 耳机

通过XSLT将XML转换为XML 队名 游戏1 锦标赛名称 1. 10600 4454 锦标赛名称 3. 10600 4454 玩家1 Def 2011-01-14 国 A- 普拉耶里诺 Att 漫游者 积极乐观的 马特 库克 22 柜台 A- 普拉耶里诺 Att 漫游者 积极乐观的 马特 库克 22 柜台 公司名称 广告 老鼠 键盘 耳机,xml,xslt,Xml,Xslt,我整晚都在与这件可怕的事情作斗争,不幸的是,网络上的大量资料并没有为我提供令人满意的方法来解决我的问题。我想通过xslt对xml文件进行“转换”。我想这样做,以改变它的结构,可能还有属性或元素的名称 我想实现类似的目标: <?xml version="1.0" encoding="utf-8"?> <?xml-stylesheet type="text/xsl" href="stylexslt3.xslt"?> <team> <teaminfo&

我整晚都在与这件可怕的事情作斗争,不幸的是,网络上的大量资料并没有为我提供令人满意的方法来解决我的问题。我想通过xslt对xml文件进行“转换”。我想这样做,以改变它的结构,可能还有属性或元素的名称

我想实现类似的目标:

<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="stylexslt3.xslt"?>
<team>
    <teaminfo>
        <logo source="logomym.jpg"/>
        <teampage address="http://www.site.com/"/>
        <name> Team name </name>
        <team_photo source="teamphoto.jpg"/>
        <game> Game1 </game>
        <achievements>
            <premiere_tournaments>
                <tournament>
                    <logoevent source="event1.jpg"/>
                    <tournament_name> tournament name </tournament_name>
                    <placing> 1 </placing>
                    <prize_pool>
                        <earned_prize> 10600 </earned_prize>
                        <average_prize> 4454 </average_prize>
                    </prize_pool>
                </tournament>
                <tournament>
                    <logoevent source="event2.jpg"/>
                    <tournament_name> tournament name </tournament_name>
                    <placing> 3 </placing>
                    <prize_pool>
                        <earned_prize> 10600 </earned_prize>
                        <average_prize> 4454 </average_prize>
                    </prize_pool>
                </tournament>

            </premiere_tournaments>

        </achievements>
    </teaminfo>
    <captain>
        <nick>Player1</nick>
        <role> Def </role>
        <captain_since>2011-01-14</captain_since>
        <Country>Country</Country>
    </captain>

    <player>
        <player_level>A-</player_level>
        <player_info streamer="y">
            <photo source="playerphoto.jpg"/>
            <nick>Playerino</nick>
            <rola>Att</rola>
            <style>roamer</style>
            <opinion_patch>Positive</opinion_patch>
            <fanpage adres="http://facebook.com/playerFanPage"/>
            <playergrade grade="Good"/>
        </player_info>
        <personal>
            <name>Matt</name>
            <surname>Kuk</surname>
            <age>22</age>
            <country>Counter</country>
        </personal>
    </player>
    <player>
        <player_level>A-</player_level>
        <player_info streamer="y">
            <photo source="playerphoto.jpg"/>
            <nick>Playerino</nick>
            <rola>Att</rola>
            <style>roamer</style>
            <opinion_patch>Positive</opinion_patch>
            <fanpage adres="http://facebook.com/playerFanPage"/>
            <playergrade grade="Good"/>
        </player_info>
        <personal>
            <name>Matt</name>
            <surname>Kuk</surname>
            <age>22</age>
            <country>Counter</country>
        </personal>
    </player>
    <sponsors>
        <sponsor>
            <companyname>Compname</companyname>
            <support_type>Periph, ads</support_type>
            <sponsor_page official_page="http://link.com"/>
            <fanpage fan_strona="http://lin43k.com"/>
        </sponsor>
    </sponsors>
    <perip>
        <mouse> mouse </mouse>
        <keyboard> keyboard </keyboard>
        <headphones> headphones </headphones>
    </perip>
</team>

队名
游戏1
锦标赛名称
1.
10600
4454
锦标赛名称
3.
10600
4454
玩家1
Def
2011-01-14
国
A-
普拉耶里诺
Att
漫游者
积极乐观的
马特
库克
22
柜台
A-
普拉耶里诺
Att
漫游者
积极乐观的
马特
库克
22
柜台

如果可能的话,请包括更改元素名称的方法。我试着用多种不同的方法来做这件事,但似乎要么我发现的方法不正确,要么我不知道如何正确使用它们。我现在不会发布我的xslt,因为它被疯狂地屠宰了。

您没有明确说明第一个和第二个示例之间发生了什么变化(即使它被疯狂地屠宰了,您也应该展示到目前为止您的工作),但从我所了解到的:

<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="stylexslt3.xslt"?>
<team>
    <teaminfo>
        <logo source="logomym.jpg"/>
        <teampage address="http://www.site.com/"/>
        <name> Team name </name>
        <team_photo source="teamphoto.jpg"/>
        <game> Game1 </game>
    </teaminfo>
    <achievements>
        <premiere_tournaments>
            <tournament>
                <logoevent source="event1.jpg"/>
                <tournament_name> tournament name </tournament_name>
                <placing> 1 </placing>
                <prize_pool>
                    <earned_prize> 10600 </earned_prize>
                    <average_prize> 4454 </average_prize>
                </prize_pool>
            </tournament>
            <tournament>
                <logoevent source="event2.jpg"/>
                <tournament_name> tournament name </tournament_name>
                <placing> 3 </placing>
                <prize_pool>
                    <earned_prize> 10600 </earned_prize>
                    <average_prize> 4454 </average_prize>
                </prize_pool>
            </tournament>

        </premiere_tournaments>

    </achievements>

    <player>
        <nick>Player1</nick>
        <role> Def </role>
        <captain_since>2011-01-14</captain_since>
        <Country>Country</Country>
    </player>
    <player>
        <player_level>A-</player_level>
        <player_info streamer="y">
            <photo source="playerphoto.jpg"/>
            <nick>Playerino</nick>
            <rola>Att</rola>
            <style>roamer</style>
            <opinion_patch>Positive</opinion_patch>
            <fanpage adres="http://facebook.com/playerFanPage"/>
            <playergrade grade="Good"/>
        </player_info>
        <personal>
            <name>Matt</name>
            <surname>Kuk</surname>
            <age>22</age>
            <country>Counter</country>
        </personal>
    </player>
    <player>
        <player_level>A-</player_level>
        <player_info streamer="y">
            <photo source="playerphoto.jpg"/>
            <nick>Playerino</nick>
            <role>Att</role>
            <style>roamer</style>
            <opinion_patch>Positive</opinion_patch>
            <fanpage adres="http://facebook.com/playerFanPage"/>
            <playergrade grade="Good"/>
        </player_info>
        <personal>
            <name>Matt</name>
            <surname>Kuk</surname>
            <age>22</age>
            <country>Counter</country>
        </personal>
    </player>
</team>


有什么我遗漏的吗?

我投票结束了这个问题。请试着把你的问题分解成更小的部分,并把它们分别作为问题发布。始终包括,到目前为止你得到了什么,你尝试了什么,以及你认为自己陷入了什么困境。应答者生成的一个一般的、可能有几百SLOC长的XSLT样式表不在StackOverflow的范围内。遇到这样的问题,您应该以XSLT标识转换为基础。看见然后,看一下和,它们分别告诉您如何重命名元素和删除元素。这将为编写更精简的XSLT铺平道路;在第二个示例中添加了缺少的结束标记。
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output method="xml" indent="yes" omit-xml-declaration="yes"/>
  <xsl:strip-space elements="*" />

  <!-- Identity transform -->
  <xsl:template match="@* | node()">
    <xsl:copy>
      <xsl:apply-templates select="@* | node()"/>
    </xsl:copy>
  </xsl:template>

  <xsl:template match="teaminfo">
    <xsl:copy>
      <xsl:apply-templates select="@* | node()[not(self::achievements)]" />
    </xsl:copy>
    <!-- Move achievements to after teaminfo-->
    <xsl:apply-templates select="achievements" />
  </xsl:template>

  <!-- Rename captain to player -->
  <xsl:template match="captain">
    <player>
      <xsl:apply-templates select="@* | node()" />
    </player>
  </xsl:template>

  <!-- Omit sponsors and perip -->
  <xsl:template match="sponsors | perip" />
</xsl:stylesheet>