Click here to Skip to main content
15,899,754 members
Please Sign up or sign in to vote.
1.00/5 (3 votes)
See more:
pls help me.
XML
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:ns0="http://schemas.microsoft.com/office/word/2003/auxHint" xmlns:ns1="http://schemas.microsoft.com/office/word/2003/wordml" xmlns:xs="http://www.w3.org/2001/XMLSchema" exclude-result-prefixes="ns0 ns1 xs">
  <xsl:output method="xml" encoding="UTF-8" indent="yes"/>

  <xsl:strip-space elements="*"/>
  <xsl:template match="/">
    <Checklist xmlns="http://icap.atp.com/2011/02/Checklist">
      <xsl:attribute name="xsi:schemaLocation" namespace="http://www.w3.org/2001/XMLSchema-instance">http://icap.atp.com/2011/02/Checklist D:/XSLT/Checklist.xsd</xsl:attribute>
      <xsl:element name="System">

        <xsl:attribute name="label">
          <xsl:text>ORG</xsl:text>
        </xsl:attribute>

        <xsl:attribute name="title">
          <xsl:text>OPERATIONS</xsl:text>
        </xsl:attribute>

        <xsl:attribute name="displayorder">
          <xsl:text>0</xsl:text>
        </xsl:attribute>

        <xsl:for-each select="ns1:wordDocument/ns1:body/ns0:sect/ns1:tbl">
          <xsl:variable name="titlerow" select="ns1:tr[1]/ns1:tc[1]/ns1:p/ns1:r"/>

          <xsl:element name="Section">

            <xsl:variable name="looptitlerow">
              <xsl:for-each select="$titlerow">
                <xsl:value-of select="ns1:t"/>
              </xsl:for-each>
            </xsl:variable>

            <xsl:attribute name="label">
              <xsl:value-of select="normalize-space(translate(substring($looptitlerow,1,2),'.',''))"/>
            </xsl:attribute>

            <xsl:attribute name="title">
              <xsl:value-of select="normalize-space(translate(substring($looptitlerow,3),'.',''))"/>
            </xsl:attribute>

            <xsl:attribute name="displayorder">
              <xsl:value-of select="position()-1"/>
            </xsl:attribute>

              <xsl:element name="Questions">

                <xsl:for-each select="ns1:tr">
                <xsl:if test="position() != 1">
                    <xsl:variable name="hidden" select="ns1:tc/ns1:p/ns1:pPr/ns1:listPr/ns0:t/@ns0:val"/>
                    <xsl:variable name="Questionrow">
                       <xsl:for-each select="ns1:tc/ns1:p">
                        <xsl:choose>
                          <xsl:when test="ns1:pPr/ns1:listPr">
                            <xsl:variable name="one" select="ns0:t/@ns0:val">
                            </xsl:variable>

                            <xsl:variable name="two">
                              <xsl:for-each select="ns1:r">
                                <!--<xsl:if test="string-length(ns1:t) &lt; 0">-->
                                  <xsl:value-of select="(ns1:t)"/>
                                <!--</xsl:if>-->
                              </xsl:for-each>
                            </xsl:variable>

                            <xsl:value-of select="concat(normalize-space($hidden),' ' , normalize-space($two))"/>
                          </xsl:when>

                          <xsl:otherwise>
                            <xsl:for-each select="ns1:r">
                              <xsl:value-of select="ns1:t"/>
                            </xsl:for-each>
                          </xsl:otherwise>
                        </xsl:choose>
                      </xsl:for-each>
                    </xsl:variable>

                  <xsl:if test="string(number(substring(normalize-space($Questionrow),1,1)))='NaN'">

                  <xsl:element name="Question">
                    <xsl:choose>
                      <xsl:when test="string(number(substring(normalize-space($Questionrow),1,1)))='NaN'">

                        <xsl:attribute name="label">
                          <xsl:choose>
                            <xsl:when test="starts-with(normalize-space($Questionrow),'(')">
                              <xsl:value-of select="translate(substring(substring($Questionrow,2,2),1,1),'.','')"/>
                            </xsl:when>
                            <xsl:when test="starts-with(normalize-space($Questionrow),'�������� ')">
                              <xsl:value-of select="translate(substring(substring(substring($Questionrow,11),2,2),1,1),'.','')"/>
                            </xsl:when>
                            <xsl:otherwise>
                              <xsl:value-of select="translate(substring(normalize-space($Questionrow),1,1),'.','')"/>
                            </xsl:otherwise>
                          </xsl:choose>
                        </xsl:attribute>

                        <xsl:attribute name="displayorder">
                          <xsl:value-of select="position() - 2"/>
                        </xsl:attribute>

                        <xsl:attribute name="questiontype">
                          <xsl:text>DoDQuestion</xsl:text>
                        </xsl:attribute>

                        <xsl:element name="Text">
                          <!--<xsl:if test="starts-with("-->
                          <!--<xsl:value-of select="normalize-space($Questionrow)"/>-->
                          <xsl:choose>
                            <xsl:when test="starts-with(normalize-space($Questionrow),'�������� ')">
                              <xsl:value-of select="normalize-space(translate(substring($Questionrow,11),'.',''))"/>
                            </xsl:when>
                            <xsl:otherwise>
                              <xsl:value-of select="normalize-space(translate($Questionrow,'.',' '))"/>
                            </xsl:otherwise>
                          </xsl:choose>
                          <!--<xsl:variable name="length" select="string-length(substring-before(normalize-space($Questionrow),'?'))"/>
                          <xsl:value-of select="substring(normalize-space($Questionrow),3,($length))"/>-->
                        </xsl:element>

                      </xsl:when>
                      <xsl:otherwise>
                        <xsl:element name="Subquestions">
                          <xsl:element name="Subquestion">
                           <!--<xsl:strip-space elements="subquestions"/>
                            <xsl:strip-space elements="Subquestion"/>-->
                            <xsl:attribute name="label">
                              <xsl:value-of select="translate(substring(normalize-space($Questionrow),1,1),'.','')"/>
                            </xsl:attribute>

                            <xsl:attribute name="displayorder">
                              <xsl:value-of select="position() - 2"/>
                            </xsl:attribute>

                            <xsl:attribute name="questiontype">
                              <xsl:text>DoDQuestion</xsl:text>
                            </xsl:attribute>

                            <xsl:element name="Text">
                              <!--<xsl:if test="starts-with("-->
                              <xsl:value-of select="translate(normalize-space($Questionrow),'.','')"/>
                              <!--<xsl:variable name="length" select="string-length(substring-before(normalize-space($Questionrow),'?'))"/>
                          <xsl:value-of select="substring(normalize-space($Questionrow),3,($length))"/>-->
                            </xsl:element>
                          </xsl:element>
                        </xsl:element>


                      </xsl:otherwise>
                    </xsl:choose>

                    <xsl:element name="AnswerChoices">

                      <xsl:element name="AnswerChoice">
                        <xsl:attribute name="code">
                          <xsl:text>Yes</xsl:text>
                        </xsl:attribute>

                        <xsl:attribute name="label">
                          <xsl:text>Yes</xsl:text>
                        </xsl:attribute>

                        <xsl:attribute name="displayorder">
                          <xsl:value-of select="0"/>
                        </xsl:attribute>

                        <xsl:attribute name="type">
                          <xsl:text>radio</xsl:text>
                        </xsl:attribute>

                      </xsl:element>

                      <xsl:element name="AnswerChoice">
                        <xsl:attribute name="code">
                          <xsl:text>No</xsl:text>
                        </xsl:attribute>

                        <xsl:attribute name="label">
                          <xsl:text>No</xsl:text>
                        </xsl:attribute>

                        <xsl:attribute name="displayorder">
                          <xsl:value-of select="1"/>
                        </xsl:attribute>

                        <xsl:attribute name="type">
                          <xsl:text>radio</xsl:text>
                        </xsl:attribute>

                      </xsl:element>

                      <xsl:element name="AnswerChoice">
                        <xsl:attribute name="code">
                          <xsl:text>NA</xsl:text>
                        </xsl:attribute>

                        <xsl:attribute name="label">
                          <xsl:text>N/A</xsl:text>
                        </xsl:attribute>

                        <xsl:attribute name="displayorder">
                          <xsl:value-of select="2"/>
                        </xsl:attribute>

                        <xsl:attribute name="type">
                          <xsl:text>radio</xsl:text>
                        </xsl:attribute>
                      </xsl:element>

                    </xsl:element>

                  </xsl:element>

                  </xsl:if>
                </xsl:if>
              </xsl:for-each>

              </xsl:element>

          </xsl:element>

        </xsl:for-each>


      </xsl:element>
    </Checklist>
  </xsl:template>

  <xsl:template name="noanswer">
    <AnswerChoice>
      <xsl:attribute name="code">
      </xsl:attribute>

      <xsl:attribute name="label">
      </xsl:attribute>

      <xsl:attribute name="displayorder">
        <xsl:value-of select="0"/>
      </xsl:attribute>

      <xsl:attribute name="type">
        <xsl:text>text</xsl:text>
      </xsl:attribute>
    </AnswerChoice>
  </xsl:template>

  <xsl:template name="threeanswers" >

    <AnswerChoice>
      <xsl:attribute name="code">
        <xsl:text>Yes</xsl:text>
      </xsl:attribute>

      <xsl:attribute name="label">
        <xsl:text>Yes</xsl:text>
      </xsl:attribute>

      <xsl:attribute name="displayorder">
        <xsl:value-of select="0"/>
      </xsl:attribute>

      <xsl:attribute name="type">
        <xsl:text>radio</xsl:text>
      </xsl:attribute>
    </AnswerChoice>

    <AnswerChoice>
      <xsl:attribute name="code">
        <xsl:text>No</xsl:text>
      </xsl:attribute>

      <xsl:attribute name="label">
        <xsl:text>No</xsl:text>
      </xsl:attribute>

      <xsl:attribute name="displayorder">
        <xsl:value-of select="1"/>
      </xsl:attribute>

      <xsl:attribute name="type">
        <xsl:text>radio</xsl:text>
      </xsl:attribute>
    </AnswerChoice>

    <AnswerChoice>
      <xsl:attribute name="code">
        <xsl:text>NA</xsl:text>
      </xsl:attribute>

      <xsl:attribute name="label">
        <xsl:text>N/A</xsl:text>
      </xsl:attribute>

      <xsl:attribute name="displayorder">
        <xsl:value-of select="2"/>
      </xsl:attribute>

      <xsl:attribute name="type">
        <xsl:text>radio</xsl:text>
      </xsl:attribute>
    </AnswerChoice>
  </xsl:template>

  <xsl:template name="question">

    <xsl:param name="tablerow"/>
    <xsl:param name="label"/>
    <xsl:param name="displayorder"/>

    <xsl:attribute name="label">
      <xsl:value-of select="$label"/>
    </xsl:attribute>

    <xsl:attribute name="displayorder">
      <xsl:value-of select="$displayorder"/>
    </xsl:attribute>

    <xsl:attribute name="questiontype">
      <xsl:text>DoDQuestion</xsl:text>
    </xsl:attribute>
  </xsl:template>

  <xsl:template name="subquestion" >

    <xsl:param name="tablerow"/>
    <xsl:param name="label"/>
    <xsl:param name="level"/>
    <xsl:param name="displayorder"/>

    <!--<xsl:for-each select="$tablerow">-->

    <xsl:attribute name="label">
      <xsl:value-of select="$label"/>
    </xsl:attribute>

    <xsl:attribute name="level">
      <xsl:value-of select="$level"/>
    </xsl:attribute>

    <xsl:attribute name="displayorder">
      <xsl:value-of select="$displayorder"/>
    </xsl:attribute>

    <xsl:attribute name="questiontype">
      <xsl:text>DoDQuestion</xsl:text>
    </xsl:attribute>

    <!--</xsl:for-each>-->
  </xsl:template>

</xsl:stylesheet>
Posted
Updated 22-May-11 23:07pm
v2
Comments
Keith Barrow 23-May-11 5:42am    
Here is the first bit of help, to get you on your way: what exactly is the problem / what are you trying to achieve. Just dumping a longish xsl file and saying "please help me" isn't going to get you any help over what I have just said I'm afraid.

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900