即使标记具有相同的名称,如何使用xslt将地址拉到输出中?

即使标记具有相同的名称,如何使用xslt将地址拉到输出中?,xslt,Xslt,我正在尝试使用xslt将导入文件中接收到的所有地址拉到输出文件中。 我确实使用插入xslt中地址标记之间的代码完成了第一组地址` 当使用与第一组地址相同的代码时,第二组地址不会通过,因为标记名是复制的。相反,它会再次通过第一组地址 请您帮助我使用xslt在输出中填充所有地址,好吗 输出中的买方地址将填充卖方地址,因为标记名称相同。我试图引用xslt中的买方地址,以便在输出中的买方下通过,但只有卖方地址通过。很抱歉,我没有可复制的示例。卖方地址使用这行代码正确地通过,但当我为买方使用这行代码时,它

我正在尝试使用xslt将导入文件中接收到的所有地址拉到输出文件中。 我确实使用插入xslt中地址标记之间的代码完成了第一组地址` 当使用与第一组地址相同的代码时,第二组地址不会通过,因为标记名是复制的。相反,它会再次通过第一组地址

请您帮助我使用xslt在输出中填充所有地址,好吗


输出中的买方地址将填充卖方地址,因为标记名称相同。我试图引用xslt中的买方地址,以便在输出中的买方下通过,但只有卖方地址通过。很抱歉,我没有可复制的示例。卖方地址使用这行代码正确地通过,但当我为买方使用这行代码时,它不起作用,只是将卖方地址拉入买方地址


*****这是导入文件xml*****

 <?xml version="1.0" encoding="ISO-8859-1"?>
<UniversalInterchange xmlns:foo="http://www.foo.org/" xmlns:bar="http://www.bar.org">

<Body>
<OrgAddressGroup>
          <OrgAddress>
            <AddressType>Seller</AddressType>
            <Address1>16 Far Away Place</Address1>
            <Address2>17 Very Far Away Place</Address2>
            <CompanyName>Test 123</CompanyName>
            <City>Durban</City>
          </OrgAddress>

         <OrgAddress>
            <AddressType>Buyer</AddressType>
            <Address1>66 For Far Place</Address1>
             <Address2>77 Not So Far Place</Address2>
            <CompanyName>Test</CompanyName>
            <Fax>+31(0)123456789</Fax>
            <OrganizationCode>AAAbbbCCC</OrganizationCode>
            <Phone>+31(0)12345678</Phone>
          </OrgAddress>

           <OrgAddress>
            <AddressType>Sending</AddressType>
            <Address1>123 Blue Rock Place</Address1>
             <Address2>77 Highway Drive</Address2>
            <CompanyName>Test</CompanyName>
            <Fax>123456789</Fax>
            <OrganizationCode>AABBCC</OrganizationCode>
            <Phone>123456789</Phone>
          </OrgAddress>

   </OrgAddressGroup>



</Body>
    </UniversalInterchange>

卖方
16遥远的地方
17非常遥远的地方
测试123
德班
买主
远地66
77不远的地方
试验
+31(0)123456789
aaabbccc
+31(0)12345678
发送
蓝岩广场123号
公路路77号
试验
123456789
AABBCC
123456789

*************这是我的xslt*************

 <?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl"
>
  <xsl:output method="xml" indent="yes"/>

  <xsl:param name="vDate" select="xyz"/>
  <!-- This line of code and the in the orderDate tage is used to populate the date.These two line work together-->

  <xsl:template match ="/">
    <UniversalInterchange>
<Body>

    <OrgAddressGroup>

        <xsl:for-each select="UniversalInterchange/Body/OrgAddressGroup">
        <OrgAddress>
          <AddressType>Seller</AddressType>
          <Address1>
             <xsl:value-of select="OrgAddress/Address1"/>
          <!--   <xsl:value-of select="UniversalInterchange/Body/OrgAddressGroup/OrgAddress/Address1"/>-->
          </Address1>
          <Address2>
            <xsl:value-of select="OrgAddress/Address2"/>
          </Address2>
          <CompanyName></CompanyName>
          <City></City>
        </OrgAddress>

        <OrgAddress>
          <AddressType>Buyer</AddressType>
          <Address1>
            <xsl:value-of select="OrgAddress/Address1"/>
          </Address1>
          <Address2>
            <xsl:value-of select="OrgAddress/Address2"/>
          </Address2>
          <CompanyName></CompanyName>
          <Fax></Fax>
          <OrganizationCode></OrganizationCode>
          <Phone></Phone>
        </OrgAddress>

        <OrgAddress>
          <AddressType>Sending</AddressType>
          <Address1></Address1>
          <Address2></Address2>
          <CompanyName></CompanyName>
          <Fax></Fax>
          <OrganizationCode></OrganizationCode>
          <Phone></Phone>
        </OrgAddress>
       </xsl:for-each>

        </OrgAddressGroup>



</Body>
    </UniversalInterchange>
  </xsl:template>
</xsl:stylesheet>
<UniversalInterchange>
   <Body>
      <OrgAddressGroup>
         <OrgAddress>
            <AddressType>Seller</AddressType>
            <Address1>16 Far Away Place</Address1>
            <Address2>17 Very Far Away Place</Address2>
            <CompanyName/>
            <City/>
         </OrgAddress>
         <OrgAddress>
            <AddressType>Buyer</AddressType>
            <Address1>16 Far Away Place</Address1>
            <Address2>17 Very Far Away Place</Address2>
            <CompanyName/>
            <Fax/>
            <OrganizationCode/>
            <Phone/>
         </OrgAddress>
         <OrgAddress>
            <AddressType>Sending</AddressType>
            <Address1/>
            <Address2/>
            <CompanyName/>
            <Fax/>
            <OrganizationCode/>
            <Phone/>
         </OrgAddress>
      </OrgAddressGroup>
   </Body>
</UniversalInterchange>

卖方
买主
发送

***********电流输出***********

 <?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl"
>
  <xsl:output method="xml" indent="yes"/>

  <xsl:param name="vDate" select="xyz"/>
  <!-- This line of code and the in the orderDate tage is used to populate the date.These two line work together-->

  <xsl:template match ="/">
    <UniversalInterchange>
<Body>

    <OrgAddressGroup>

        <xsl:for-each select="UniversalInterchange/Body/OrgAddressGroup">
        <OrgAddress>
          <AddressType>Seller</AddressType>
          <Address1>
             <xsl:value-of select="OrgAddress/Address1"/>
          <!--   <xsl:value-of select="UniversalInterchange/Body/OrgAddressGroup/OrgAddress/Address1"/>-->
          </Address1>
          <Address2>
            <xsl:value-of select="OrgAddress/Address2"/>
          </Address2>
          <CompanyName></CompanyName>
          <City></City>
        </OrgAddress>

        <OrgAddress>
          <AddressType>Buyer</AddressType>
          <Address1>
            <xsl:value-of select="OrgAddress/Address1"/>
          </Address1>
          <Address2>
            <xsl:value-of select="OrgAddress/Address2"/>
          </Address2>
          <CompanyName></CompanyName>
          <Fax></Fax>
          <OrganizationCode></OrganizationCode>
          <Phone></Phone>
        </OrgAddress>

        <OrgAddress>
          <AddressType>Sending</AddressType>
          <Address1></Address1>
          <Address2></Address2>
          <CompanyName></CompanyName>
          <Fax></Fax>
          <OrganizationCode></OrganizationCode>
          <Phone></Phone>
        </OrgAddress>
       </xsl:for-each>

        </OrgAddressGroup>



</Body>
    </UniversalInterchange>
  </xsl:template>
</xsl:stylesheet>
<UniversalInterchange>
   <Body>
      <OrgAddressGroup>
         <OrgAddress>
            <AddressType>Seller</AddressType>
            <Address1>16 Far Away Place</Address1>
            <Address2>17 Very Far Away Place</Address2>
            <CompanyName/>
            <City/>
         </OrgAddress>
         <OrgAddress>
            <AddressType>Buyer</AddressType>
            <Address1>16 Far Away Place</Address1>
            <Address2>17 Very Far Away Place</Address2>
            <CompanyName/>
            <Fax/>
            <OrganizationCode/>
            <Phone/>
         </OrgAddress>
         <OrgAddress>
            <AddressType>Sending</AddressType>
            <Address1/>
            <Address2/>
            <CompanyName/>
            <Fax/>
            <OrganizationCode/>
            <Phone/>
         </OrgAddress>
      </OrgAddressGroup>
   </Body>
</UniversalInterchange>

卖方
16遥远的地方
17非常遥远的地方
买主
16遥远的地方
17非常遥远的地方
发送

********所需输出*********

     <UniversalInterchange>
   <Body>
      <OrgAddressGroup>
         <OrgAddress>
            <AddressType>Seller</AddressType>
            <Address1>16 Far Away Place</Address1>
            <Address2>17 Very Far Away Place</Address2>
            <CompanyName/>
            <City/>
         </OrgAddress>
         <OrgAddress>
            <AddressType>Buyer</AddressType>
            <Address1>66 For Far Place</Address1>
            <Address2>77 Not So Far Place</Address2>
            <CompanyName/>
            <Fax/>
            <OrganizationCode/>
            <Phone/>
         </OrgAddress>
         <OrgAddress>
            <AddressType>Sending</AddressType>
            <Address1/>123 Blue Rock Place</Address1>
            <Address2/>77 Highway Drive</Address2>
            <CompanyName/>
            <Fax/>
            <OrganizationCode/>
            <Phone/>
         </OrgAddress>
      </OrgAddressGroup>
   </Body>
</UniversalInterchange>

卖方
16遥远的地方
17非常遥远的地方
买主
远地66
77不远的地方
发送
蓝岩广场123号
公路路77号
XSLT 1.0中的
。(您显然正在使用),
xsl:value of
返回所选节点集的第一个节点的值


如果您想处理所有
OrgAddress
元素,请让您的
xsl:for each
指令选择
OrgAddress
,而不是它的父
OrganizationAddressGroup

请解决您的问题:您的XML不完整,您的XSLT不完整(XSLT),您的输出包含XSLT代码。感谢您的反馈,我尝试了您对循环的建议,但它似乎不起作用。任何进一步的想法都将受到高度赞赏。请编辑您的问题并发布一个可复制的示例-请参阅。输出中的买家地址将填充卖家地址,因为标签名称相同。输出中的买方地址将填充卖方地址,因为标记名称相同。我试图引用xslt中的买方地址,以便在输出中的买方下通过,但只有卖方地址通过。很抱歉,我没有可复制的示例。卖方地址使用这行代码正确通过“”但是,当我为买家使用这行代码时,它不起作用,只是将卖家地址拉入买家地址。你在浪费你(和我)的时间。我不会回应,直到你发布一个可复制的例子,一个我可以通过复制/粘贴运行的例子。