Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.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
Xml 如果某个变量等于某个特定值,我需要运行一个循环吗?_Xml_Xslt - Fatal编程技术网

Xml 如果某个变量等于某个特定值,我需要运行一个循环吗?

Xml 如果某个变量等于某个特定值,我需要运行一个循环吗?,xml,xslt,Xml,Xslt,我对XML和XSL非常陌生,遇到了一些问题。我浏览了互联网,尝试了几乎所有我看到的东西,但我就是无法让它发挥作用。我需要的是输出地址为发货地址的所有人的姓名 以下是XML: <?xml version="1.0"?> <PurchaseOrders> <PurchaseOrder PurchaseOrderNumber="99503" OrderDate="1999-10-20"> <Address Type="Shipping">

我对XML和XSL非常陌生,遇到了一些问题。我浏览了互联网,尝试了几乎所有我看到的东西,但我就是无法让它发挥作用。我需要的是输出地址为发货地址的所有人的姓名

以下是XML:

<?xml version="1.0"?>
<PurchaseOrders>
  <PurchaseOrder PurchaseOrderNumber="99503" OrderDate="1999-10-20">
    <Address Type="Shipping">
      <Name>Ellen Adams</Name>
      <Street>123 Maple Street</Street>
    </Address>
    <Address Type="Billing">
      <Name>Tai Yee</Name>
      <Street>8 Oak Avenue</Street>
    </Address>
  </PurchaseOrder>

  <PurchaseOrder PurchaseOrderNumber="99505" OrderDate="1999-10-22">
    <Address Type="Shipping">
      <Name>Cristian Osorio</Name>
      <Street>456 Main Street</Street>
    </Address>
    <Address Type="Billing">
      <Name>Cristian Osorio</Name>
      <Street>456 Main Street</Street>
    </Address>
  </PurchaseOrder>

艾伦·亚当斯
枫树街123号
大仪
橡树大道8号
克里斯蒂安·奥索里奥
大街456号
克里斯蒂安·奥索里奥
大街456号
这是我到目前为止的xml—请记住,我不知道我在做什么!:):


客户信息
顾客
这样试试

XSLT1.0

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

<xsl:template match="/PurchaseOrders">
    <html>
        <head>
            <title>Customer Info</title>      
        </head>  
        <body>
            <table border="1">
            <thead>
                <tr bgcolor="yellow">
                    <th>Customer</th>        
                </tr>  
            </thead>
            <tbody>
                <xsl:apply-templates select="PurchaseOrder/Address[@Type='Shipping']"/>        
            </tbody>
        </table>
    </body>
    </html> 
</xsl:template>

<xsl:template match="Address">
    <tr>
        <td>
             <xsl:value-of select="Name" />
        </td>
    </tr>
</xsl:template>  

</xsl:stylesheet>

客户信息
顾客

注意使用
xsl:apply-templates
完成的过滤;这消除了以后对条件的需要

这是一个很好的开始。根据您的测试输入,通过编辑您的预期输出,让它变得很棒。祝你好运。这也让事情变得容易多了。我知道这很容易,我只是忽略了。非常感谢。
<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/PurchaseOrders">
    <html>
        <head>
            <title>Customer Info</title>      
        </head>  
        <body>
            <table border="1">
            <thead>
                <tr bgcolor="yellow">
                    <th>Customer</th>        
                </tr>  
            </thead>
            <tbody>
                <xsl:apply-templates select="PurchaseOrder/Address[@Type='Shipping']"/>        
            </tbody>
        </table>
    </body>
    </html> 
</xsl:template>

<xsl:template match="Address">
    <tr>
        <td>
             <xsl:value-of select="Name" />
        </td>
    </tr>
</xsl:template>  

</xsl:stylesheet>