0

我有一个 source.xml 文件

<?xml version="1.0" encoding="utf-8" ?>
<Studentdatabase>
    <Student>
        <id>0001</id>
        <Fname>SOMEX</Fname>
        <Mname>Y</Mname>
        <Lname>Z</Lname>
        <DOB>1992-05-26T00:00:00+05:30</DOB>
        <fathersname>XYZ</fathersname>
        <cls>I</cls>
        <gen>M</gen>
        <add>kadapa</add>
    </Student>
    <Student>
        <id>0002</id>
        <Fname>SOMEA</Fname>
        <Mname>B</Mname>
        <Lname>C</Lname>
        <DOB>1991-04-6T00:00:00+05:30</DOB>
        <fathersname>ABC</fathersname>
        <cls>II</cls>
        <gen>F</gen>
        <add>PUNE</add>
    </Student>
    <Student>
        <id>0003</id>
        <Fname>SOMED</Fname>
        <Mname>E</Mname>
        <Lname>F</Lname>
        <DOB>1990-08-2T00:00:00+05:30</DOB>
        <fathersname>DEF</fathersname>
        <cls>III</cls>
        <gen>M</gen>
        <add>JMD</add>
    </Student>
</Studentdatabase>

和一个destination.xml 文件

<?xml version="1.0" standalone="yes"?>
<MyDB>
  <tableName>
    <studentid>1</studentid>
    <Firstname>chaithanya</Firstname>
    <middlename>babu</middlename>
    <lastname>satyala</lastname>
    <Dateofbirth>1991-05-26T00:00:00+05:30</Dateofbirth>
    <fathersname>babu</fathersname>
    <class>I</class>
    <gender>M</gender>
    <address>kadapa</address>
  </tableName>
  <tableName>
    <studentid>2</studentid>
    <Firstname>charan</Firstname>
    <middlename>kumar</middlename>
    <lastname>palla</lastname>
    <Dateofbirth>1990-10-05T00:00:00+05:30</Dateofbirth>
    <fathersname>krishnaiah</fathersname>
    <class>I</class>
    <gender>M</gender>
    <address>hyderabad</address>
  </tableName>
  <tableName>
    <studentid>3</studentid>
    <Firstname>kondaiah</Firstname>
    <middlename />
    <lastname>dasari</lastname>
    <Dateofbirth>1985-06-05T00:00:00+05:30</Dateofbirth>
    <fathersname>dasari</fathersname>
    <class>II</class>
    <gender>M</gender>
    <address>porumamilla</address>
  </tableName>
  <tableName>
    <studentid>4</studentid>
    <Firstname>dheeraj</Firstname>
    <middlename>reddy</middlename>
    <lastname>polimera</lastname>
    <Dateofbirth>1991-05-16T00:00:00+05:30</Dateofbirth>
    <fathersname>krishna reddy</fathersname>
    <class>II</class>
    <gender>M</gender>
    <address>pulivendula</address>
  </tableName>
  <tableName>
    <studentid>5</studentid>
    <Firstname>shabaz</Firstname>
    <middlename>banu</middlename>
    <lastname>noormohammad</lastname>
    <Dateofbirth>1991-06-16T00:00:00+05:30</Dateofbirth>
    <fathersname>noor ahmed</fathersname>
    <class>III</class>
    <gender>F</gender>
    <address>jmd</address>
  </tableName>
  <tableName>
    <studentid>6</studentid>
    <Firstname>khairuna</Firstname>
    <middlename>begum</middlename>
    <lastname>taticherla</lastname>
    <Dateofbirth>2002-02-02T00:00:00+05:30</Dateofbirth>
    <fathersname>kullay</fathersname>
    <class>III</class>
    <gender>F</gender>
    <address>gugudu</address>
  </tableName>
  <tableName>
    <studentid>7</studentid>
    <Firstname>chandrakala</Firstname>
    <middlename />
    <lastname>kummera</lastname>
    <Dateofbirth>1991-06-03T00:00:00+05:30</Dateofbirth>
    <fathersname>lingreddy</fathersname>
    <class>IV</class>
    <gender>F</gender>
    <address>anantapur</address>
  </tableName>
</MyDB>

现在的问题是我需要通过参考目标文件更改元素和标签的名称来将数据从源文件插入目标文件......例如<Fname>,在源文件中必须更改为<FirstName>目标文件

谁可以帮我这个事?

4

1 回答 1

0

您可能想从阅读 XSLT Identity Transform开始。这只会按原样复制所有元素

<xsl:template match="@*|node()">
    <xsl:copy>
        <xsl:apply-templates select="@*|node()"/>
    </xsl:copy>
</xsl:template>

但是,在您的情况下,看起来只有fathersname元素是不变的。然后,您需要编写模板来匹配您想要更改的元素,并在它们的位置创建新元素。例如,要将 Student 数据库“重命名”为 MyDB需要执行以下操作:

<xsl:template match="Studentdatabase">
   <MyDB>
     <xsl:apply-templates select="@*|node()"/>
   </MyDB>
</xsl:template>

要将Student更改为tableName,您将执行以下操作:

<xsl:template match="Student">
   <tableName>
     <xsl:apply-templates select="@*|node()"/>
   </tableName>
</xsl:template>

如果对要重命名的所有元素重复此操作,您应该能够获得预期的输出。

于 2012-10-10T07:52:53.320 回答