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
Xml 如何基于其他元素值+xslt读取元素_Xml_Vb.net_Xslt - Fatal编程技术网

Xml 如何基于其他元素值+xslt读取元素

Xml 如何基于其他元素值+xslt读取元素,xml,vb.net,xslt,Xml,Vb.net,Xslt,我有下面的xml,我想在Name元素值为Total时选择savings元素的值 请让我知道如何为这个特定场景编写xslt </ArrayOfCategoryData> <CategoryData> <Category> <Category> <Savingsdollar>0.00</Savingsdollar> <Savingspercentage&

我有下面的xml,我想在Name元素值为Total时选择savings元素的值

请让我知道如何为这个特定场景编写xslt

</ArrayOfCategoryData>
    <CategoryData>
      <Category>
       <Category>
         <Savingsdollar>0.00</Savingsdollar>
         <Savingspercentage>0.00</Savingspercentage>
         <Savingsusage>0.00</Savingsusage>
       </Category>
      </Category>
     <Name>Refrigeration</Name>
    </CategoryData>
  <CategoryData>
     <Category>
      <Category>
        <Savingsdollar>999.97</Savingsdollar>
        <Savingspercentage>0.00</Savingspercentage>
        <Savingsusage>9,998.04</Savingsusage>
      </Category>
     </Category>
    <Name>Total</Name>
  </CategoryData>
</ArrayOfCategoryData>




 <table cellpadding='0' cellspacing='0'>
                  <tbody>
                      <tr>
                        <td style='border-left: none; border-bottom: none; width: 51px;'>
                          $ <xsl:value-of select="//ArrayOfCategoryData/CategoryData[Name='Total']//Savingsdollar/text()"/>
                        </td>
                        <td style='border-bottom: none; width: 29px;'>
                          <xsl:value-of select="//ArrayOfCategoryData/CategoryData[Name='Total']//Savingspercentage/text()"/>%
                        </td>
                        <td style='border-bottom: none;'>
                          <xsl:value-of select="//ArrayOfCategoryData/CategoryData[Name='Total']//Savingsusage/text()"/>
                        </td>
                      </tr>
                  </tbody>
                </table>
如果我用这个

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

<xsl:template match="text()"/>

<xsl:template match="/">
    <xsl:apply-templates/>
</xsl:template>

<xsl:template match="CategoryData[Name='Total']">
    <Total>
        <xsl:value-of select="Category/Savings"/>
    </Total>
</xsl:template>
对于您的源XML,我得到:

<?xml version="1.0" encoding="UTF-8"?>
<Total>9,998.04</Total>
尝试一下我给你的XSLT-

最佳富豪酒店,
彼得

你是说xpath/CategoryData[Name='Total']//Savings/textYes我需要xpath,或者我想从xslt中获取节省值,我复制了您给定的值,但没有用此表达式显示值9.998.04我已经放置了实际的xml文件,现在请给我一个xpath或任何条件来读取Total Name元素的any savings元素值。只需将Savings更改为Savingsusage.Joel,我尝试过一次,但无法读取svingsdollar值//ArrayOfCategoryData/CategoryData[Name='Total']//Savingsdollar/textPeter,我无法在表元素中调用,我把xslt放在上面,请帮助我如何在表中阅读td elemetsI我不太熟悉XSTL与HTML表的关系。我建议您打开一个关于源XML、XSLT和预期输出的新问题。向你问好,彼得