给定xml的xslt转换

时间:2013-12-25 06:56:26

标签: html xml xslt

这是我要为其编写xsl文件的xml文件。此xsl的目的是使用java xml转换用于xml到html的转换。

xml file

我正在尝试在我的xsl文件中实现此逻辑,但无法实现。

for each loop Id = PO1
    if segment Id = PO1
        if element Id = PO103
            print its value (i.e. CS)
    if loop Id = PID
        if segment Id = PID
            if element Id = PID05
                print its value (i.e. BANANAS, ...)

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:3)

以这种方式尝试:

<xsl:for-each select="//loop[@Id='PO1']/segment[@Id='PO1']/element[@Id='PO103']
                      |
                      //loop[@Id='PID']/segment[@Id='PID']/element[@Id='PID05'] ">
    <!-- whatever "print" means goes here -->
</xsl:for-each>

P.S。请将您的XML发布为代码,而不是图片。

答案 1 :(得分:0)

谢谢你user3016153,在你的帮助下,我可以解决我的问题:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/">
  <html>
  <body>
  <h2>HTML generated by XSLT stylesheet from EDI input</h2>
  <table border="1">
    <tr bgcolor="#9acd32">
      <th>Title</th>
      <th>Value</th>
    </tr>
<xsl:for-each select="//loop[@Id='PO1']/segment[@Id='PO1']/element[@Id='PO103']
                      |
                      //loop[@Id='PID']/segment[@Id='PID']/element[@Id='PID05'] ">
    <tr>
      <td><xsl:value-of select="@Id"/></td>
      <td><xsl:value-of select="."/></td>
    </tr>
</xsl:for-each>
  </table>
  </body>
  </html>
</xsl:template>
</xsl:stylesheet>