在“>处拆分xml字符串

时间:2013-11-13 08:05:41

标签: xml xslt split

我有一个简单的xml文件(以后会更长),只有一个值,

<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="cr.xsl"?>
<companyroutes>
  <route name="EKCHLOWI">SALLO UM44 KOGIM UM725 BESKO UZ36 MAREM UT106 VESUB T106 NETES T700 DEGIN UP31 DOSEL</route>
  <route name="ENGMEDDF">ENGM TOR P615 LBE N850 PIROT T152 KERAX EDDF</route>
</companyroutes>

我需要通过xslt将其转换为网页上的表格,但我需要输出显示如下:

**EKCHLOWI** SALLO UM44 KOGIM UM725 BESKO UZ36 MAREM UT106 VESUB T106 NETES T700 DEGIN UP31 DOSEL

由于该行只有一个“名称”,如何将字符串拆分为两个表,分为“&gt;? cr.xsl会是什么样的?

xml由第三方软件使用,所以我无法操作它,因为如果我改变语法格式它将无法工作。 我无法将<catalog>插入xml文件或将数据拆分为

......我是个新手...

编辑: html看起来应该是这样的:

<?xml version="1.0" encoding="ISO-8859-1"?>

    <xsl:stylesheet version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

    <xsl:template match="/">
      <html>
      <body>
      <h2>BBL - CompanyRoutes</h2>
      <table border="1">
        <tr>
          <th>Route Name</th>
          <th>Route</th>
        </tr>
        <xsl:for-each select="????">
        <tr>
          <td><xsl:value-of select="Route Name"/></td>
          <td><xsl:value-of select="Route"/></td>
        </tr>
        </xsl:for-each>
      </table>
      </body>
      </html>
    </xsl:template>

    </xsl:stylesheet>

...示例之后:http://www.w3schools.com/xsl/xsl_transformation.asp

请注意,我只有????我应该在.xml文件中引用目录,我没有。

1 个答案:

答案 0 :(得分:1)

要回答您更新的问题:

您的每个循环应选择每个路径元素。像这样:

<xsl:for-each select="//route">

路由名称和路由的正确xPath应如下所示:

<tr>
  <td><xsl:value-of select="./@name"/></td>
  <td><xsl:value-of select="./text()"/></td>
</tr>

这当然假设您有这样的输入:

<?xml version="1.0" encoding="utf-8"?>
<companyroutes>
  <route name="EKCHLOWI">SALLO UM44 KOGIM UM725 BESKO UZ36 MAREM UT106 VESUB T106 NETES T700 DEGIN UP31 DOSEL</route>
  <route name="ENGMEDDF">ENGM TOR P615 LBE N850 PIROT T152 KERAX EDDF</route>
</companyroutes>