Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.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_Xslt - Fatal编程技术网

xslt和xml-不呈现(一旦我能够呈现此内容,我将呈现其余内容)

xslt和xml-不呈现(一旦我能够呈现此内容,我将呈现其余内容),xml,xslt,Xml,Xslt,您好,我正在尝试为下面的xml提供一个样式表:但是我不知道我的xpath有什么问题。我试着参考每个网站,但它只是不呈现 <careTeames> <careteame> <PCP>JONES,MARY</PCP> <type>Ped - Under 5</type> <caregivers/> <providers>

您好,我正在尝试为下面的xml提供一个样式表:但是我不知道我的xpath有什么问题。我试着参考每个网站,但它只是不呈现

<careTeames> 
   <careteame> 
      <PCP>JONES,MARY</PCP> 
       <type>Ped - Under 5</type> 
       <caregivers/> 
       <providers> 
         <provider>Henderson,Wilson</provider>
         <providertype>Cardilogist</providertype>
         <provider>H,WILLIAM</provider> 
         <providertype>OPTHOMOLGY</providertype> 
       </providers>
   </careteame>
   <careteame> 
      <PCP>JONES,MARY2</PCP> 
       <type>Ped - Under 5</type> 
       <caregivers/> 
       <providers> 
         <provider>Henderson,Wilson2</provider>
         <providertype>Cardilogist2</providertype>
         <provider>H,WILLIAM2</provider> 
         <providertype>OPTHOMOLGY2</providertype> 
       </providers>
    </careteame>
</careTeames>
我的xsl能够生成PCP的第一行,但另一行失败:(


资料
可乐
可乐
(  )

问题是,当您这样做时

<xsl:for-each select="return/careTeames/careteame">
现在你真正需要做的就是

<xsl:for-each select="caremanagers">

或者更确切地说,您需要这样做,因为您的XML样本中没有caremanagers(也没有任何return元素)


实际上,使用模板匹配通常比使用xsl:for each更好

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
   <xsl:output method="xml" indent="yes"/>

   <xsl:template match="/">
      <html>
         <body>
            <h2>Data</h2>
            <table border="1">
               <tr bgcolor="#9acd32">
                  <th>col1</th>
                  <th>col2</th>
               </tr>
               <xsl:apply-templates select="return/careTeames/careteame"/>
            </table>
         </body>
      </html>
   </xsl:template>

   <xsl:template match="careteame">
      <tr>
         <td>
            <xsl:value-of select="PCP"/>
         </td>
         <td>
            <xsl:value-of select="type"/>
         </td>
      </tr>
      <xsl:apply-templates select="providers/provider"/>
   </xsl:template>

   <xsl:template match="provider">
      <tr>
         <td>
            <xsl:value-of select="."/>
         </td>
      </tr>
   </xsl:template>
</xsl:stylesheet>

资料
可乐
可乐

很有效。我正在编辑apply templates标签中的路径。它应该是return/careTeames/careteame。非常感谢@Tim!!:D
<xsl:for-each select="return/careTeames/careteame/caremanagers">
<xsl:for-each select="caremanagers">
<xsl:for-each select="providers/provider">
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
   <xsl:output method="xml" indent="yes"/>

   <xsl:template match="/">
      <html>
         <body>
            <h2>Data</h2>
            <table border="1">
               <tr bgcolor="#9acd32">
                  <th>col1</th>
                  <th>col2</th>
               </tr>
               <xsl:apply-templates select="return/careTeames/careteame"/>
            </table>
         </body>
      </html>
   </xsl:template>

   <xsl:template match="careteame">
      <tr>
         <td>
            <xsl:value-of select="PCP"/>
         </td>
         <td>
            <xsl:value-of select="type"/>
         </td>
      </tr>
      <xsl:apply-templates select="providers/provider"/>
   </xsl:template>

   <xsl:template match="provider">
      <tr>
         <td>
            <xsl:value-of select="."/>
         </td>
      </tr>
   </xsl:template>
</xsl:stylesheet>