使用xsl将命名空间和元素复制到节点

时间:2014-07-17 10:25:41

标签: xslt

我是xml和xsl转换的新手,我有一个xml文件,需要通过xslt映射进行转换,我的输入文件就像

<?xml version="1.0" encoding="UTF-8"?>
<UBLExtensions>
<Name xsi:schemaLocation="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2            ..\..\XML\Inter\Namefile_01.xsd" xmlns="urn:oasis:names:specification:ubl:schema:xsd:CommonSignatureComponents-2"
            xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2" xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2"
      xmlns:sac="urn:oasis:names:specification:ubl:schema:xsd:SignatureAggregateComponents-2" xmlns:ext="urn:oasis:names:specification:ubl:schema:xsd:CommonExtensionComponents-2">

    <ext:ExtensionAgencyURI>urn:invoice:hr:issueplace</ext:ExtensionAgencyURI>
    <ext:ExtensionContent>
        <ext:InvoiceIssuePlace>London</ext:InvoiceIssuePlace>
    </ext:ExtensionContent>
  </Name>
 </UBLExtensions>

我想生成一个输出xml,其中包含更少的头字段, 输出文件需要像

  <?xml version="1.0" encoding="UTF-8"?>
  <Header>
 <details>
    <author>Knorr, Stefan</author>
    <title>Creepy Crawlies</title>
    <genre>Horror</genre>
    <price>4.95</price>
    <publish_date>2000-12-06</publish_date>
    <description>An anthology of horror stories about roaches,
  centipedes, scorpions  and other insects.</description>
  </details>

   <UBLExtensions>
      <Name xsi:schemaLocation="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2 ..\..\XML\Inter\Namefile_01.xsd" xmlns="urn:oasis:names:specification:ubl:schema:xsd:CommonSignatureComponents-2"
          xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2" xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2"
          xmlns:sac="urn:oasis:names:specification:ubl:schema:xsd:SignatureAggregateComponents-2" xmlns:ext="urn:oasis:names:specification:ubl:schema:xsd:CommonExtensionComponents-2">

        <ext:ExtensionAgencyURI>urn:invoice:hr:issueplace</ext:ExtensionAgencyURI>
            <ext:ExtensionContent>
            <ext:InvoiceIssuePlace>London</ext:InvoiceIssuePlace>
        </ext:ExtensionContent>
      </Name>
    </UBLExtensions>

     </Header>

1 个答案:

答案 0 :(得分:0)

使用

<xsl:template match="/">
<Header>
 <details>
    <author>Knorr, Stefan</author>
    <title>Creepy Crawlies</title>
    <genre>Horror</genre>
    <price>4.95</price>
    <publish_date>2000-12-06</publish_date>
    <description>An anthology of horror stories about roaches,
  centipedes, scorpions  and other insects.</description>
  </details>

   <xsl:copy-of select="node()"/>

     </Header>
</xsl:template>