XML в xml для эффективного отображения значений - PullRequest
0 голосов
/ 16 февраля 2012

может кто-нибудь пролить свет на то, как получить данные для моего xml_2 myxml1 выглядит следующим образом, как я могу получить заголовок и значения для emp id / name.

    <?xml version="1.0" encoding="UTF-8" standalone="no"?>
     <xX:Doc>
<XX:Head style="Topic">
    <b type="para">Employee</b>
</XX:Head>
<XX:Head style="Subheading">
<b>Emp Details</b>
</XX:Head>
<XX:Head style="EMP_ID">888999</XX:Head>
<XX:Head style="EMP_NAME">JOSH</XX:Head>
<XX:Head style="HIRE_DATE">01/01/2000</XX:Head>
<XX:Head style="Subheading">
<b>HOBBIES</b>
</XX:Head>
<XX:Head style="h1">swimming</XX:Head>
<XX:Head style="h2">travelling</XX:Head>

мой код xslt, как показано ниже

    <xsl:stylesheet xmlns:xsl="http://www.w3.org/" version="1.0">
    <xsl:output method="xml" ></xsl:output>
     <xsl:template match="/">
     <empdata xsi:noNamespaceSchemaLocation="employee.xsd"> 
     <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"      
     xmlns:xsi="http://www.w3.org/XML" version="1.0">
     <xsl:output method="xml" ></xsl:output>
     <xsl:template match="/">
     <empdata xsi:noNamespaceSchemaLocation="hr.xsd"> 
     <xsl:apply-templates/>
     </empdata> 
     </xsl:template>
    <xsl:template match="XX:Head[@style='Topic']">
         <xsl:element name="Topic"> 
         <xsl:value-of select="." />                    
        </xsl:element>
    </xsl:template>
     <xsl:template match="XX:Head[@style='Subheading']">     
                    <xsl:for-each select="b">
                          <xsl:element name="{name()}">
                            <xsl:value-of select="." />
                          </xsl:element>
                    </xsl:for-each>
    </xsl:template>
     <xsl:template match="XX:Head[@style='emp_id']">     
                  <xsl:element name="emp_id">
                            <xsl:value-of select="." />
                  </xsl:element>
    </xsl:template>
     <xsl:template match="XX:Head[@style='emp_name']">   
                  <xsl:element name="emp-name">
                            <xsl:value-of select="." />
                  </xsl:element>
    </xsl:template>     
     <xsl:template match="XX:Head[@style='h1']">     
                  <xsl:element name="h1">
                            <xsl:value-of select="." />
                  </xsl:element>
    </xsl:template> 
     <!--   etc...-->                 
        </xsl:stylesheet>

теперь проблема с newxml2.

      <?xml version="1.0" encoding="UTF-8" ?>
      <empdata xmlns:xsi="http://www.w3.org/XML"    
        xsi:noNamespaceSchemaLocation="hr.xsd">
       <topic>employee</topic> 
       <b>emp details</b> 
       <empid>888999</empid> 
        <empname>888999</empname> 
        <b>HOBBIES/b> 
        <h1>swimming</h1> 
        <h2>travelling</h2> 
         </empdata>

Вопрос: как кодировать вторую часть без повторения

любая быстрая помощь оценена

Вопрос: как кодировать вторую часть, не повторяя

любая быстрая помощь оценена

спасибо, Jill

1 Ответ

1 голос
/ 16 февраля 2012

Хотя не очень понятно с требованием, я его разработал.Надеюсь, это работает для вас.Дайте мне знать, если какая-либо модификация вам нужна в выводе.

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xsi="http://www.w3.org/XML" version="1.0" xmlns:XX="http://www.w3.org">
  <xsl:output method="xml"/>
  <xsl:template match="XX:Head">
    <xsl:element name="{@style}">
      <xsl:value-of select="." />
    </xsl:element>
  </xsl:template>
  <xsl:template match="XX:Head[@style='Subheading']">
    <xsl:for-each select="b">
      <xsl:element name="{name()}">
        <xsl:value-of select="." />
      </xsl:element>
    </xsl:for-each>
  </xsl:template>
</xsl:stylesheet>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...