2014-11-24 227 views
0

我想使用XSLT來轉換一個複雜的XML,並以下面的輸出結束。這是使用的XSLT樣式表。XSLT使用字段和元數據從複雜XML創建重複元素ids

XSLT樣式表:

<xsl:stylesheet version="1.0" 
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/> 
<xsl:strip-space elements="*"/> 

<xsl:key name="fname" match="FieldDefinition" use="@guid" /> 
    <xsl:template match="/"> 
<root> 
    <xsl:for-each select="Records/Record"> 
     <Record> 
      <xsl:apply-templates select="Field"/> 
     </Record> 
    </xsl:for-each> 
</root> 
</xsl:template> 
<xsl:template match="Field"> 
    <Question><xsl:value-of select="key('fname', @guid)/@name" /></Question> 
     <Answer><xsl:value-of select="."/></Answer> 
</xsl:template> 
<xsl:template match="Field[key('fname', @guid)/@alias='Questionnaire_ID' or key('fname', @guid)/@alias='Survey_Name' or key('fname', @guid)/@alias='Target' or key('fname', @guid)/@alias='Country' or key('fname', @guid)/@alias='Audit_Date' or key('fname', @guid)/@alias='CIR_Duration' or key('fname', @guid)/@alias='Overall_Training_Time' ]"> 
<xsl:element name="{key('fname', @guid)/@alias}"> 
    <xsl:value-of select="."/> 
</xsl:element> 
</xsl:template> 

<xsl:template match="Field[key('fname', @guid)/@alias='CIM_1']"> 
    <xsl:element name="{key('fname', @guid)/@alias}"> 
     <xsl:value-of select="concat(Users/User/@lastName, ' ', Users/User/@firstName)"/> 
    </xsl:element> 
</xsl:template> 

</xsl:stylesheet> 

XML輸出:

<?xml version="1.0" encoding="UTF-8"?> 
<root> 
    <Record> 
    <Questionnaire_ID>288237</Questionnaire_ID> 
    <Survey_Name>Review</Survey_Name> 
    <Target>5000-AR</Target> 
    <Country>AR</Country> 
    <CIM_1>Easwaran Sreevidhya</CIM_1> 
    <Audit_Date>5/12/2014 12:00:00 AM</Audit_Date> 
    <CIR_Duration>1</CIR_Duration> 
    <Overall_Training_Time>9.96</Overall_Training_Time> 
    <Question>CIT-AML-001</Question> 
    <Answer>No</Answer> 
    <Question>CIT-CA-001</Question> 
    <Answer>No</Answer> 
    <Question>CIT-CA-002</Question> 
    <Answer>Yes</Answer> 
    <Question>CIT-CA-003</Question> 
    <Answer>No</Answer> 
    <Question>CIT-CP-001</Question> 
    <Answer>Yes</Answer> 
    <Question>CIT-CP-002</Question> 
    <Answer>Yes</Answer> 
</Record> 
</root> 

但我需要輸出爲以下格式如下圖所示。您能否幫助我們如何爲以下場景設計XSLT摘要表格?對於每個重複元素都需要創建一個新記錄,並且我必須將這個邏輯應用於所有問題。

其餘的XML標籤Questionnaire_ID,Survey_Name,Target,Country,CIM_1,Audit_Date,CIR_Duration,Overall_Training_Time應該保持不變。

所需的輸出:

<?xml version="1.0" encoding="UTF-8"?> 
<root> 
    <Record> 
    <Questionnaire_ID>288237</Questionnaire_ID> 
    <Survey_Name>Review</Survey_Name> 
    <Target>5000-AR</Target> 
    <Country>AR</Country> 
    <CIM_1>seaswar</CIM_1> 
    <Audit_Date>5/12/2014 12:00:00 AM</Audit_Date> 
    <CIR_Duration>1</CIR_Duration> 
<Overall_Training_Time>9.96</Overall_Training_Time> 
    <Question_Name>CITCAP001</Question_Name> 
    <Answer>No</Answer> 
    </Record> 
    <Record> 
    <Questionnaire_ID>288237</Questionnaire_ID> 
    <Survey_Name>Review</Survey_Name> 
    <Target>5000-AR</Target> 
    <Country>AR</Country> 
    <CIM_1>seaswar</CIM_1> 
    <Audit_Date>5/12/2014 12:00:00 AM</Audit_Date> 
    <CIR_Duration>1</CIR_Duration> 
    <Overall_Training_Time>9.96</Overall_Training_Time> 
    <Question_Name>CITAML001_1</Question_Name> 
    <Answer>No</Answer> 
</Record> 
     <Record> 
    <Questionnaire_ID>288237</Questionnaire_ID> 
    <Survey_Name>Review</Survey_Name> 
    <Target>5000-AR</Target> 
    <Country>AR</Country> 
    <CIM_1>seaswar</CIM_1> 
    <Audit_Date>5/12/2014 12:00:00 AM</Audit_Date> 
    <CIR_Duration>1</CIR_Duration> 
<Overall_Training_Time>9.96</Overall_Training_Time> 
    <Question_Name>CITCAP003</Question_Name> 
    <Answer>Yes</Answer> 
</Record> 
</root> 

輸入XML僅供您參考共享。請忍受這個大的XML,因爲它有很多問題,我用更少的問題說明了我的要求。由於它是一個非常大的XML,因此刪除了幾個問題。

<?xml version="1.0" encoding="utf-8" ?> 
<Records count="2"> 
    <Metadata> 
    <FieldDefinitions> 
    <FieldDefinition id="24399" guid="35dc55b3-45c6-41e3-919a-8ff2832acdd0" name="Questionnaire ID" alias="Questionnaire_ID"/> 
    <FieldDefinition id="24401" guid="a9d47185-0f62-40f8-b557-f8d78099fcf6" name="Facility" alias="Target"/> 
    <FieldDefinition id="24418" guid="150ab6a4-a71f-49cf-abd5-609a672e0672" name="CIR Date" alias="Audit_Date"/> 
    <FieldDefinition id="24474" guid="cfa4cdef-1488-4cde-860e-424e4809ce11" name="CIT-HS-007" alias="CITHS007"/> 
    <FieldDefinition id="24477" guid="e0e9cf1d-721d-4335-9e60-847e8ddbde26" name="CIT-HS-014" alias="CITHS014"/> 
    <FieldDefinition id="24479" guid="cfe2c2a9-1eb8-4b90-a318-92f18e8cc3d9" name="CIT-HS-017" alias="CITHS017"/> 
    <FieldDefinition id="35714" guid="3be23703-af55-4b28-939e-2ed14291554e" name="Labor and Employment Training" alias="Labor_Employment_Training"/> 
    <FieldDefinition id="35715" guid="465aff23-cbc8-447c-9798-d3534c825cff" name="Licenses and Permits Training" alias="Licenses_Permits_Training"/> 
    <FieldDefinition id="35716" guid="280cc119-bc0c-4eb9-982d-79dc4f0ff8ae" name="Privacy Training" alias="Privacy_Training"/> 
    <FieldDefinition id="35717" guid="19f368dd-6327-4b20-99ce-bdbeab9f2615" name="Product Safety Training" alias="Product_Safety_Training"/> 
    <FieldDefinition id="40975" guid="1af16fd4-d58b-4dc0-9c94-c053ae5f7d70" name="Survey Name" alias="Survey_Name"/> 
    <FieldDefinition id="35708" guid="a8d88884-f8fb-4d6d-97d9-a873674140e2" name="Consumer Protection Training" alias="Consumer_Protection_Training"/> 
    <FieldDefinition id="35709" guid="42478aad-9be5-41e4-8afd-c3865c78c4ee" name="Environmental Training" alias="Environmental_Training"/> 
    <FieldDefinition id="35710" guid="14adca11-89d1-4230-a653-3d5601978c95" name="Food Safety Training" alias="Food_Safety_Training"/> 
    <FieldDefinition id="35711" guid="63813055-51c1-4d55-8b9b-cafbd79381d3" name="Global Ethics Training" alias="Global_Ethics_Training1"/> 
    <FieldDefinition id="35712" guid="9575a0e1-afc0-42b3-87b0-746f4ffbe9b6" name="Health and Safety Training" alias="Health_Safety_Training"/> 
    <FieldDefinition id="35713" guid="53945130-2fdc-480a-a6c2-3e640a21157e" name="Health and Wellness Training" alias="Health_and_Wellness_Training"/> 
    <FieldDefinition id="31640" guid="a367fdb6-9029-453f-ac39-384876bbb769" name="CIT-LP-003" alias="CITLP003"/> 
    <FieldDefinition id="31701" guid="f3992d86-ee90-4617-8afb-27105ebca956" name="CIR Duration" alias="CIR_Duration"/> 
    <FieldDefinition id="34339" guid="fcf67af6-4fbc-4cb0-9110-0c34eb6a946a" name="CIT-CP-003" alias="CITCP003_1"/> 
    <FieldDefinition id="35621" guid="cd8dc877-1e78-4a46-8c87-3a65652a1b4b" name="Overall Training Time" alias="Overall_Training_Time"/> 
    <FieldDefinition id="35705" guid="eb95b879-a64d-4adb-9936-5bf0192d4a44" name="Anti-Money Laundering Training" alias="Copy_of_AntiMoney_Laundering_Train_2"/> 
    <FieldDefinition id="35706" guid="caf88c37-da7b-4f14-8539-25eb4de4f085" name="Compliance Awareness Program Training" alias="Compliance_Awareness_Training1"/> 
    <FieldDefinition id="30489" guid="b6939473-65ad-448a-a6b7-7be0345bccd8" name="CIT-FS-006" alias="CITFS006"/> 
    <FieldDefinition id="30490" guid="16c3206c-45bb-4bc6-89f4-81740aec38e8" name="CIT-FS-007" alias="CITFS007"/> 
    <FieldDefinition id="30491" guid="2559fc06-566e-413a-9af1-4874111d5678" name="CIT-PS-001" alias="CITPS001"/> 
    <FieldDefinition id="30850" guid="e762bf4e-2c2e-4c55-a889-a567cc06cebc" name="CIM" alias="CIM_1"/> 
    <FieldDefinition id="31638" guid="c9aa5bbf-df96-494b-a326-fd92f659d3a5" name="CIT-LP-001" alias="CITLP001"/> 
    <FieldDefinition id="31639" guid="f9b7a0a6-8e27-4816-81b1-908e65f2b47c" name="CIT-LP-002" alias="CITLP002"/> 
    <FieldDefinition id="29218" guid="20552aa0-622b-475a-a1ee-226049335733" name="CIT-HS-010" alias="CITHS010_1"/> 
    <FieldDefinition id="30484" guid="fcf31a4e-bd37-4371-b57f-c992b5785768" name="CIT-FS-001" alias="CITFS001"/> 
    <FieldDefinition id="30485" guid="08691ec1-5208-48fb-aa50-d8cb10b613d7" name="CIT-FS-002" alias="CITFS002"/> 
    <FieldDefinition id="30486" guid="b31ba3a4-f5bc-4b04-8579-d41e6f02afa2" name="CIT-FS-003" alias="CITFS003"/> 
    <FieldDefinition id="30487" guid="9bfd9a6d-394b-4c03-b484-5ff710cadb3e" name="CIT-FS-004" alias="CITFS004"/> 
    <FieldDefinition id="30488" guid="42191407-4576-43a4-b5ee-fb233542cdcb" name="CIT-FS-005" alias="CITFS005"/> 
    <FieldDefinition id="25378" guid="9d82e476-3357-4e28-9b2d-f4253237d4df" name="CIT-HS-015" alias="CITHS014_1"/> 
    <FieldDefinition id="25725" guid="9d93571d-6f3b-40af-9d08-3a8df51e226f" name="CIT-AML-001" alias="CITAML001_1"/> 
    <FieldDefinition id="25740" guid="a1c74b61-72dc-46aa-89d9-bc25fb68481f" name="Country" alias="Country"/> 
    <FieldDefinition id="25833" guid="0a549a54-7af7-4e73-b29b-670e83f7e434" name="CIT-PR-002" alias="CITPR002_1"/> 
    <FieldDefinition id="28711" guid="75240d0c-9126-474b-a44a-000568430ac9" name="CIT-MISC-001" alias="CITMISC001"/> 
    <FieldDefinition id="28712" guid="736551dd-8013-4c74-870a-da1ca5983e62" name="CIT-MISC-002" alias="CITMISC002"/> 
    <FieldDefinition id="25197" guid="22084156-3858-4ce4-b3c0-26cc263d9f0d" name="CIT-ENV-006" alias="CITENV006"/> 
    <FieldDefinition id="25198" guid="23345c53-9880-4f00-a9bd-46154d18374c" name="CIT-HW-004" alias="CITHW004"/> 
    <FieldDefinition id="25199" guid="fc3c51f3-e77e-4be0-ac3a-70296a8ad270" name="CIT-HS-013" alias="CITHS013"/> 
    <FieldDefinition id="25200" guid="28d2eae6-2c71-4e91-b02f-1af962b04e0b" name="CIT-HS-016" alias="CITHS016"/> 
    <FieldDefinition id="25207" guid="64622e90-615c-47c4-8e1a-3612fe23b494" name="CIT-HS-002" alias="CITHS002_1"/> 
    <FieldDefinition id="25377" guid="f949fa2a-0fe2-4a4c-815d-3f71631e1506" name="CIT-HS-012" alias="CITHS011_1"/> 
    <FieldDefinition id="25181" guid="f1f33cd0-b2ce-4141-8842-0439ca61399e" name="CIT-HW-015" alias="CITHW015"/> 
    <FieldDefinition id="25182" guid="f9b6e558-b10b-4da5-83aa-b165934d2710" name="CIT-HW-016" alias="CITHW016"/> 
    <FieldDefinition id="25183" guid="d802a9f8-0a51-4451-be28-25f53c881912" name="CIT-HW-017" alias="CITHW017"/> 
    <FieldDefinition id="25184" guid="d3fad893-e8b0-44f8-b770-f1ee8f2ba9d3" name="CIT-CA-001" alias="CITCAP001"/> 
    <FieldDefinition id="25185" guid="8a7dc8d8-0ed1-41db-8d48-666d8e846d82" name="CIT-CA-002" alias="CITCAP003"/> 
    <FieldDefinition id="25186" guid="820c6818-104e-4e4a-9551-fa4b1e2316de" name="CIT-CA-003" alias="CITCAP004"/> 
    <FieldDefinition id="24518" guid="feb8d30d-eda4-493a-ac24-88c5418f5037" name="CIT-EMP-002" alias="CITEMP002"/> 
    <FieldDefinition id="24519" guid="e70a4b05-958d-4c6b-a69f-63f7de775631" name="CIT-EMP-003" alias="CITEMP003"/> 
    <FieldDefinition id="24520" guid="72ae2b2c-b72a-4032-9460-6b6238eae84a" name="CIT-EMP-004" alias="CITEMP004"/> 
    <FieldDefinition id="24521" guid="ec732005-17b5-46a8-9cce-dc3b6ce34c9f" name="CIT-HS-001" alias="CITHS001"/> 
    <FieldDefinition id="25179" guid="9c4ac981-b926-4fe2-9e26-86a9c6fc7069" name="CIT-HW-013" alias="CITHW013"/> 
    <FieldDefinition id="25180" guid="fcd58ef4-5a53-4d3e-be4f-6b771497b14c" name="CIT-HW-014" alias="CITHW014"/> 
    <FieldDefinition id="24507" guid="187785d2-6fa9-4cad-8d34-056ea8e05a53" name="CIT-ENV-001" alias="CITENV001"/> 
    <FieldDefinition id="24508" guid="28b6dbf8-6e2d-48dd-9f69-52cfd954bd7e" name="CIT-ENV-002" alias="CITENV002"/> 
    <FieldDefinition id="24509" guid="724cce4a-9266-4f4e-ac5f-86d673a621f7" name="CIT-ENV-004" alias="CITENV004"/> 
    <FieldDefinition id="24510" guid="d112520b-9ea7-40f1-b297-d5b47aa1fed9" name="CIT-ENV-005" alias="CITENV005"/> 
    <FieldDefinition id="24513" guid="2fcdb490-0f63-40a8-bf09-b48acb3ab5ee" name="CIT-CP-001" alias="CITCP001"/> 
    <FieldDefinition id="24515" guid="6ec534aa-04e7-4d3f-9c3f-06c2303444d6" name="CIT-ETH-001" alias="CITETH001"/> 
    <FieldDefinition id="24498" guid="6610bdd8-4288-462b-8b18-c48ade332653" name="CIT-HS-006" alias="CITHS006"/> 
    <FieldDefinition id="24499" guid="41a5487c-9fed-450b-9aa7-0010ea507aa2" name="CIT-HS-008" alias="CITHS009"/> 
    <FieldDefinition id="24500" guid="e79b4fdb-13c6-44b0-b45d-78006950fe8e" name="CIT-HS-009" alias="CITHS010"/> 
    <FieldDefinition id="24501" guid="c744f944-6bfe-42cc-8dd4-9f98b67bacd6" name="CIT-HS-011" alias="CITHS011"/> 
    <FieldDefinition id="24504" guid="3f2a847a-017f-43a7-9a2c-4dd17c209257" name="CIT-PR-001" alias="CITPR001"/> 
    <FieldDefinition id="24506" guid="37151e1e-d41b-4ec1-b55d-e2a748ab5969" name="CIT-PR-003" alias="CITPR003"/> 
    <FieldDefinition id="24492" guid="82cf05e3-a532-4f61-bc8e-d84e44611cd1" name="CIT-CP-002" alias="CITCP002"/> 
    <FieldDefinition id="24493" guid="2b97d382-e5a5-482b-ba15-1ccc2af82353" name="CIT-ETH-002" alias="CITETH002"/> 
    <FieldDefinition id="24494" guid="8cd3b681-5158-49ab-93ba-8221c6a9df1c" name="CIT-EMP-001" alias="CITHS002"/> 
    <FieldDefinition id="24495" guid="7303f222-a629-4a77-8c22-07bb99c50c7c" name="CIT-HS-003" alias="CITHS003"/> 
    <FieldDefinition id="24496" guid="b54d1636-8745-425d-8e89-25fdcd0d36da" name="CIT-HS-004" alias="CITHS004"/> 
    <FieldDefinition id="24497" guid="aed45ae6-272f-4f65-86dc-432288719fb3" name="CIT-HS-005" alias="CITHS005"/> 
    <FieldDefinition id="24486" guid="022798d4-f7df-4c4a-8a00-c8b27ebac543" name="CIT-HW-007" alias="CITHW007"/> 
    <FieldDefinition id="24487" guid="00493fbe-26ac-4ebc-966f-b42f44a2eb97" name="CIT-HW-008" alias="CITHW008"/> 
    <FieldDefinition id="24488" guid="64b9528c-24dd-430b-9149-8deb3908545a" name="CIT-HW-009" alias="CITHW009"/> 
    <FieldDefinition id="24489" guid="fade3308-0d7e-4e89-b4f4-843fb0848bd9" name="CIT-HW-010" alias="CITHW010"/> 
    <FieldDefinition id="24490" guid="2e28d2b5-b2f4-424b-9793-b9b2e6a876c4" name="CIT-HW-011" alias="CITHW011"/> 
    <FieldDefinition id="24491" guid="4742b0c8-7362-434f-a4b1-7fdeef753940" name="CIT-HW-012" alias="CITHW012"/> 
    <FieldDefinition id="24480" guid="b949a566-646c-4421-bd66-c6ccf7058346" name="CIT-ENV-003" alias="CITENV003"/> 
    <FieldDefinition id="24481" guid="fb3e0f6e-d054-4b22-87de-85b8a9048e4b" name="CIT-HW-001" alias="CITHW001"/> 
    <FieldDefinition id="24482" guid="00fa19c0-832d-4f4e-87f6-a08cb9e9736d" name="CIT-HW-002" alias="CITHW002"/> 
    <FieldDefinition id="24483" guid="c70d424c-8ca4-479c-822d-c1f319db5aff" name="CIT-HW-003" alias="CITHW003"/> 
    <FieldDefinition id="24484" guid="fa5ad594-b2b4-492b-8bdd-052b175d7bef" name="CIT-HW-005" alias="CITHW005"/> 
    <FieldDefinition id="24485" guid="be77515d-a140-47c9-8a5e-47b7576c082c" name="CIT-HW-006" alias="CITHW006"/> 
    </FieldDefinitions> 
</Metadata> 
<LevelCounts> 
    <LevelCount id="354" guid="513bd7fe-7a0d-47a3-b286-4f32c4219170" count="2"/> 
</LevelCounts> 
<Record contentId="288237" levelId="354" levelGuid="513bd7fe-7a0d-47a3-b286-4f32c4219170" moduleId="547" parentId="0"> 
    <Field id="24399" guid="35dc55b3-45c6-41e3-919a-8ff2832acdd0" type="6">288237</Field> 
    <Field id="40975" guid="1af16fd4-d58b-4dc0-9c94-c053ae5f7d70" type="4"> 
    <ListValues> 
     <ListValue id="132670" displayName="Review">Review</ListValue> 
    </ListValues> 
    </Field> 
    <Field id="24401" guid="a9d47185-0f62-40f8-b557-f8d78099fcf6" type="9"> 
    <Reference id="240937">5000-AR</Reference> 
    </Field> 
    <Field id="25740" guid="a1c74b61-72dc-46aa-89d9-bc25fb68481f" type="1">AR</Field> 
    <Field id="30850" guid="e762bf4e-2c2e-4c55-a889-a567cc06cebc" type="8"> 
    <Users> 
     <User id="217" firstName="Sreevidhya" lastName="Easwaran" domain="HomeOffice">seaswar</User> 
    </Users> 
    </Field> 
    <Field id="24418" guid="150ab6a4-a71f-49cf-abd5-609a672e0672" type="3" xmlConvertedValue="2014-05-12T00:00:00Z">5/12/2014 12:00:00 AM</Field> 
    <Field id="31701" guid="f3992d86-ee90-4617-8afb-27105ebca956" type="2">1</Field> 
    <Field id="35621" guid="cd8dc877-1e78-4a46-8c87-3a65652a1b4b" type="2">9.96</Field> 
    <Field id="25725" guid="9d93571d-6f3b-40af-9d08-3a8df51e226f" type="4"> 
    <ListValues> 
     <ListValue id="96791" displayName="No">No</ListValue> 
    </ListValues> 
    </Field> 
    <Field id="25184" guid="d3fad893-e8b0-44f8-b770-f1ee8f2ba9d3" type="4"> 
    <ListValues> 
     <ListValue id="96192" displayName="No">No</ListValue> 
    </ListValues> 
    </Field> 
    <Field id="25185" guid="8a7dc8d8-0ed1-41db-8d48-666d8e846d82" type="4"> 
    <ListValues> 
     <ListValue id="96193" displayName="Yes">Yes</ListValue> 
    </ListValues> 
    </Field> 
    <Field id="25186" guid="820c6818-104e-4e4a-9551-fa4b1e2316de" type="4"> 
    <ListValues> 
     <ListValue id="96196" displayName="No">No</ListValue> 
    </ListValues> 
    </Field> 
    <Field id="24513" guid="2fcdb490-0f63-40a8-bf09-b48acb3ab5ee" type="4"> 
    <ListValues> 
     <ListValue id="95324" displayName="Yes">Yes</ListValue> 
    </ListValues> 
    </Field> 
    <Field id="24492" guid="82cf05e3-a532-4f61-bc8e-d84e44611cd1" type="4"> 
    <ListValues> 
     <ListValue id="95316" displayName="Yes">Yes</ListValue> 
    </ListValues> 
    </Field> 
    <Field id="24494" guid="8cd3b681-5158-49ab-93ba-8221c6a9df1c" type="4"> 
    <ListValues> 
     <ListValue id="95325" displayName="No">No</ListValue> 
    </ListValues> 
    </Field> 
    <Field id="24518" guid="feb8d30d-eda4-493a-ac24-88c5418f5037" type="4"> 
    <ListValues> 
     <ListValue id="95325" displayName="No">No</ListValue> 
    </ListValues> 
    </Field> 
    <Field id="24519" guid="e70a4b05-958d-4c6b-a69f-63f7de775631" type="4"> 
    <ListValues> 
     <ListValue id="95324" displayName="Yes">Yes</ListValue> 
    </ListValues> 
    </Field> 
    <Field id="24520" guid="72ae2b2c-b72a-4032-9460-6b6238eae84a" type="4"> 
    <ListValues> 
     <ListValue id="95325" displayName="No">No</ListValue> 
    </ListValues> 
    </Field> 
    <Field id="24507" guid="187785d2-6fa9-4cad-8d34-056ea8e05a53" type="4"> 
    <ListValues> 
     <ListValue id="95325" displayName="No">No</ListValue> 
    </ListValues> 
    </Field> 
    <Field id="24508" guid="28b6dbf8-6e2d-48dd-9f69-52cfd954bd7e" type="4"> 
    <ListValues> 
     <ListValue id="95325" displayName="No">No</ListValue> 
    </ListValues> 
    </Field> 
    <Field id="24480" guid="b949a566-646c-4421-bd66-c6ccf7058346" type="4"> 
    <ListValues> 
     <ListValue id="95280" displayName="No">No</ListValue> 
    </ListValues> 
    </Field> 
    <Field id="24509" guid="724cce4a-9266-4f4e-ac5f-86d673a621f7" type="4"> 
    <ListValues> 
     <ListValue id="95325" displayName="No">No</ListValue> 
    </ListValues> 
    </Field> 
    <Field id="24510" guid="d112520b-9ea7-40f1-b297-d5b47aa1fed9" type="4"> 
    <ListValues> 
     <ListValue id="95325" displayName="No">No</ListValue> 
    </ListValues> 
    </Field> 
    <Field id="25197" guid="22084156-3858-4ce4-b3c0-26cc263d9f0d" type="4"> 
    <ListValues> 
     <ListValue id="96202" displayName="Yes">Yes</ListValue> 
    </ListValues> 
    </Field> 
    <Field id="25207" guid="64622e90-615c-47c4-8e1a-3612fe23b494" type="4"> 
    <ListValues> 
     <ListValue id="96206" displayName="No">No</ListValue> 
    </ListValues> 
    </Field> 
    <Field id="24495" guid="7303f222-a629-4a77-8c22-07bb99c50c7c" type="4"> 
    <ListValues> 
     <ListValue id="95325" displayName="No">No</ListValue> 
    </ListValues> 
    </Field> 
    <Field id="24496" guid="b54d1636-8745-425d-8e89-25fdcd0d36da" type="4"> 
    <ListValues> 
     <ListValue id="95325" displayName="No">No</ListValue> 
    </ListValues> 
    </Field> 
    <Field id="24497" guid="aed45ae6-272f-4f65-86dc-432288719fb3" type="4"> 
    <ListValues> 
     <ListValue id="95325" displayName="No">No</ListValue> 
    </ListValues> 
    </Field> 
    <Field id="24498" guid="6610bdd8-4288-462b-8b18-c48ade332653" type="4"> 
    <ListValues> 
     <ListValue id="95325" displayName="No">No</ListValue> 
    </ListValues> 
    </Field> 
    <Field id="24474" guid="cfa4cdef-1488-4cde-860e-424e4809ce11" type="4"> 
    <ListValues> 
     <ListValue id="95261" displayName="Yes">Yes</ListValue> 
    </ListValues> 
    </Field> 
    <Field id="24499" guid="41a5487c-9fed-450b-9aa7-0010ea507aa2" type="4"> 
    <ListValues> 
     <ListValue id="95324" displayName="Yes">Yes</ListValue> 
    </ListValues> 
    </Field> 
    <Field id="24500" guid="e79b4fdb-13c6-44b0-b45d-78006950fe8e" type="4"> 
    <ListValues> 
     <ListValue id="95325" displayName="No">No</ListValue> 
    </ListValues> 
    </Field> 
    <Field id="29218" guid="20552aa0-622b-475a-a1ee-226049335733" type="4"> 
    <ListValues> 
     <ListValue id="104290" displayName="No">No</ListValue> 
    </ListValues> 
    </Field> 
    <Field id="24501" guid="c744f944-6bfe-42cc-8dd4-9f98b67bacd6" type="4"> 
    <ListValues> 
     <ListValue id="95324" displayName="Yes">Yes</ListValue> 
    </ListValues> 
    </Field> 
    <Field id="25377" guid="f949fa2a-0fe2-4a4c-815d-3f71631e1506" type="4"> 
    <ListValues> 
     <ListValue id="95325" displayName="No">No</ListValue> 
    </ListValues> 
    </Field> 
    <Field id="25199" guid="fc3c51f3-e77e-4be0-ac3a-70296a8ad270" type="4"> 
    <ListValues> 
     <ListValue id="96185" displayName="Yes">Yes</ListValue> 
    </ListValues> 
    </Field> 
</Record> 
</Records> 
+1

你可以添加你的輸入xml也謝謝 – Treemonkey 2014-11-24 11:46:49

+0

@Treemonkey也添加了輸入xml。 – Vivek 2014-11-24 11:56:15

+0

您應該已經知道如何解決這個問題,從您以前的問題的答案:http://stackoverflow.com/questions/27098956/xslt-mapping-with-metadata-and-field-tags-with-multiple-repetitive-elements只需爲每個需要單獨治療的領域添加一個模板。 – 2014-11-24 14:44:09

回答

0

我不知道這樣的事情可能會爲你工作:

XSLT 1.0

<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/> 
<xsl:strip-space elements="*"/> 

<xsl:key name="fname" match="FieldDefinition" use="@guid" /> 

<xsl:template match="/"> 
    <root> 
     <xsl:for-each select="Records/Record/Field[starts-with(key('fname', @guid)/@alias,'CIT')]"> 
      <Record> 
       <xsl:apply-templates select="../Field[not(starts-with(key('fname', @guid)/@alias,'CIT'))]"/> 
       <Question> 
        <xsl:value-of select="key('fname', @guid)/@name" /> 
       </Question> 
       <Answer> 
        <xsl:value-of select="following-sibling::Field[1]"/> 
       </Answer> 
      </Record> 
     </xsl:for-each> 
    </root> 
</xsl:template> 

<xsl:template match="Field"> 
    <xsl:element name="{key('fname', @guid)/@alias}"> 
     <xsl:value-of select="."/> 
    </xsl:element> 
</xsl:template> 

<xsl:template match="Field[key('fname', @guid)/@alias='CIM_1']"> 
    <xsl:element name="{key('fname', @guid)/@alias}"> 
     <xsl:value-of select="concat(Users/User/@lastName, ' ', Users/User/@firstName)"/> 
    </xsl:element> 
</xsl:template> 

</xsl:stylesheet> 

應用到你的輸入例如,結果是:

<?xml version="1.0" encoding="UTF-8"?> 
<root> 
    <Record> 
     <Questionnaire_ID>288237</Questionnaire_ID> 
     <Survey_Name>Review</Survey_Name> 
     <Target>5000-AR</Target> 
     <Country>AR</Country> 
     <CIM_1>Easwaran Sreevidhya</CIM_1> 
     <Audit_Date>5/12/2014 12:00:00 AM</Audit_Date> 
     <CIR_Duration>1</CIR_Duration> 
     <Overall_Training_Time>9.96</Overall_Training_Time> 
     <Question>CIT-AML-001</Question> 
     <Answer>No</Answer> 
    </Record> 
    <Record> 
     <Questionnaire_ID>288237</Questionnaire_ID> 
     <Survey_Name>Review</Survey_Name> 
     <Target>5000-AR</Target> 
     <Country>AR</Country> 
     <CIM_1>Easwaran Sreevidhya</CIM_1> 
     <Audit_Date>5/12/2014 12:00:00 AM</Audit_Date> 
     <CIR_Duration>1</CIR_Duration> 
     <Overall_Training_Time>9.96</Overall_Training_Time> 
     <Question>CIT-CA-001</Question> 
     <Answer>Yes</Answer> 
    </Record> 
    <Record> 
     <Questionnaire_ID>288237</Questionnaire_ID> 
     <Survey_Name>Review</Survey_Name> 
     <Target>5000-AR</Target> 
     <Country>AR</Country> 
     <CIM_1>Easwaran Sreevidhya</CIM_1> 
     <Audit_Date>5/12/2014 12:00:00 AM</Audit_Date> 
     <CIR_Duration>1</CIR_Duration> 
     <Overall_Training_Time>9.96</Overall_Training_Time> 
     <Question>CIT-CA-002</Question> 
     <Answer>No</Answer> 
    </Record> 
    <Record> 
     <Questionnaire_ID>288237</Questionnaire_ID> 
     <Survey_Name>Review</Survey_Name> 
     <Target>5000-AR</Target> 
     <Country>AR</Country> 
     <CIM_1>Easwaran Sreevidhya</CIM_1> 
     <Audit_Date>5/12/2014 12:00:00 AM</Audit_Date> 
     <CIR_Duration>1</CIR_Duration> 
     <Overall_Training_Time>9.96</Overall_Training_Time> 
     <Question>CIT-CA-003</Question> 
     <Answer>Yes</Answer> 
    </Record> 
    <Record> 
     <Questionnaire_ID>288237</Questionnaire_ID> 
     <Survey_Name>Review</Survey_Name> 
     <Target>5000-AR</Target> 
     <Country>AR</Country> 
     <CIM_1>Easwaran Sreevidhya</CIM_1> 
     <Audit_Date>5/12/2014 12:00:00 AM</Audit_Date> 
     <CIR_Duration>1</CIR_Duration> 
     <Overall_Training_Time>9.96</Overall_Training_Time> 
     <Question>CIT-CP-001</Question> 
     <Answer>Yes</Answer> 
    </Record> 
    <Record> 
     <Questionnaire_ID>288237</Questionnaire_ID> 
     <Survey_Name>Review</Survey_Name> 
     <Target>5000-AR</Target> 
     <Country>AR</Country> 
     <CIM_1>Easwaran Sreevidhya</CIM_1> 
     <Audit_Date>5/12/2014 12:00:00 AM</Audit_Date> 
     <CIR_Duration>1</CIR_Duration> 
     <Overall_Training_Time>9.96</Overall_Training_Time> 
     <Question>CIT-CP-002</Question> 
     <Answer>No</Answer> 
    </Record> 
    <Record> 
     <Questionnaire_ID>288237</Questionnaire_ID> 
     <Survey_Name>Review</Survey_Name> 
     <Target>5000-AR</Target> 
     <Country>AR</Country> 
     <CIM_1>Easwaran Sreevidhya</CIM_1> 
     <Audit_Date>5/12/2014 12:00:00 AM</Audit_Date> 
     <CIR_Duration>1</CIR_Duration> 
     <Overall_Training_Time>9.96</Overall_Training_Time> 
     <Question>CIT-EMP-001</Question> 
     <Answer>No</Answer> 
    </Record> 
    <Record> 
     <Questionnaire_ID>288237</Questionnaire_ID> 
     <Survey_Name>Review</Survey_Name> 
     <Target>5000-AR</Target> 
     <Country>AR</Country> 
     <CIM_1>Easwaran Sreevidhya</CIM_1> 
     <Audit_Date>5/12/2014 12:00:00 AM</Audit_Date> 
     <CIR_Duration>1</CIR_Duration> 
     <Overall_Training_Time>9.96</Overall_Training_Time> 
     <Question>CIT-EMP-002</Question> 
     <Answer>Yes</Answer> 
    </Record> 
    <Record> 
     <Questionnaire_ID>288237</Questionnaire_ID> 
     <Survey_Name>Review</Survey_Name> 
     <Target>5000-AR</Target> 
     <Country>AR</Country> 
     <CIM_1>Easwaran Sreevidhya</CIM_1> 
     <Audit_Date>5/12/2014 12:00:00 AM</Audit_Date> 
     <CIR_Duration>1</CIR_Duration> 
     <Overall_Training_Time>9.96</Overall_Training_Time> 
     <Question>CIT-EMP-003</Question> 
     <Answer>No</Answer> 
    </Record> 
    <Record> 
     <Questionnaire_ID>288237</Questionnaire_ID> 
     <Survey_Name>Review</Survey_Name> 
     <Target>5000-AR</Target> 
     <Country>AR</Country> 
     <CIM_1>Easwaran Sreevidhya</CIM_1> 
     <Audit_Date>5/12/2014 12:00:00 AM</Audit_Date> 
     <CIR_Duration>1</CIR_Duration> 
     <Overall_Training_Time>9.96</Overall_Training_Time> 
     <Question>CIT-EMP-004</Question> 
     <Answer>No</Answer> 
    </Record> 
    <Record> 
     <Questionnaire_ID>288237</Questionnaire_ID> 
     <Survey_Name>Review</Survey_Name> 
     <Target>5000-AR</Target> 
     <Country>AR</Country> 
     <CIM_1>Easwaran Sreevidhya</CIM_1> 
     <Audit_Date>5/12/2014 12:00:00 AM</Audit_Date> 
     <CIR_Duration>1</CIR_Duration> 
     <Overall_Training_Time>9.96</Overall_Training_Time> 
     <Question>CIT-ENV-001</Question> 
     <Answer>No</Answer> 
    </Record> 
    <Record> 
     <Questionnaire_ID>288237</Questionnaire_ID> 
     <Survey_Name>Review</Survey_Name> 
     <Target>5000-AR</Target> 
     <Country>AR</Country> 
     <CIM_1>Easwaran Sreevidhya</CIM_1> 
     <Audit_Date>5/12/2014 12:00:00 AM</Audit_Date> 
     <CIR_Duration>1</CIR_Duration> 
     <Overall_Training_Time>9.96</Overall_Training_Time> 
     <Question>CIT-ENV-002</Question> 
     <Answer>No</Answer> 
    </Record> 
    <Record> 
     <Questionnaire_ID>288237</Questionnaire_ID> 
     <Survey_Name>Review</Survey_Name> 
     <Target>5000-AR</Target> 
     <Country>AR</Country> 
     <CIM_1>Easwaran Sreevidhya</CIM_1> 
     <Audit_Date>5/12/2014 12:00:00 AM</Audit_Date> 
     <CIR_Duration>1</CIR_Duration> 
     <Overall_Training_Time>9.96</Overall_Training_Time> 
     <Question>CIT-ENV-003</Question> 
     <Answer>No</Answer> 
    </Record> 
    <Record> 
     <Questionnaire_ID>288237</Questionnaire_ID> 
     <Survey_Name>Review</Survey_Name> 
     <Target>5000-AR</Target> 
     <Country>AR</Country> 
     <CIM_1>Easwaran Sreevidhya</CIM_1> 
     <Audit_Date>5/12/2014 12:00:00 AM</Audit_Date> 
     <CIR_Duration>1</CIR_Duration> 
     <Overall_Training_Time>9.96</Overall_Training_Time> 
     <Question>CIT-ENV-004</Question> 
     <Answer>No</Answer> 
    </Record> 
    <Record> 
     <Questionnaire_ID>288237</Questionnaire_ID> 
     <Survey_Name>Review</Survey_Name> 
     <Target>5000-AR</Target> 
     <Country>AR</Country> 
     <CIM_1>Easwaran Sreevidhya</CIM_1> 
     <Audit_Date>5/12/2014 12:00:00 AM</Audit_Date> 
     <CIR_Duration>1</CIR_Duration> 
     <Overall_Training_Time>9.96</Overall_Training_Time> 
     <Question>CIT-ENV-005</Question> 
     <Answer>Yes</Answer> 
    </Record> 
    <Record> 
     <Questionnaire_ID>288237</Questionnaire_ID> 
     <Survey_Name>Review</Survey_Name> 
     <Target>5000-AR</Target> 
     <Country>AR</Country> 
     <CIM_1>Easwaran Sreevidhya</CIM_1> 
     <Audit_Date>5/12/2014 12:00:00 AM</Audit_Date> 
     <CIR_Duration>1</CIR_Duration> 
     <Overall_Training_Time>9.96</Overall_Training_Time> 
     <Question>CIT-ENV-006</Question> 
     <Answer>No</Answer> 
    </Record> 
    <Record> 
     <Questionnaire_ID>288237</Questionnaire_ID> 
     <Survey_Name>Review</Survey_Name> 
     <Target>5000-AR</Target> 
     <Country>AR</Country> 
     <CIM_1>Easwaran Sreevidhya</CIM_1> 
     <Audit_Date>5/12/2014 12:00:00 AM</Audit_Date> 
     <CIR_Duration>1</CIR_Duration> 
     <Overall_Training_Time>9.96</Overall_Training_Time> 
     <Question>CIT-HS-002</Question> 
     <Answer>No</Answer> 
    </Record> 
    <Record> 
     <Questionnaire_ID>288237</Questionnaire_ID> 
     <Survey_Name>Review</Survey_Name> 
     <Target>5000-AR</Target> 
     <Country>AR</Country> 
     <CIM_1>Easwaran Sreevidhya</CIM_1> 
     <Audit_Date>5/12/2014 12:00:00 AM</Audit_Date> 
     <CIR_Duration>1</CIR_Duration> 
     <Overall_Training_Time>9.96</Overall_Training_Time> 
     <Question>CIT-HS-003</Question> 
     <Answer>No</Answer> 
    </Record> 
    <Record> 
     <Questionnaire_ID>288237</Questionnaire_ID> 
     <Survey_Name>Review</Survey_Name> 
     <Target>5000-AR</Target> 
     <Country>AR</Country> 
     <CIM_1>Easwaran Sreevidhya</CIM_1> 
     <Audit_Date>5/12/2014 12:00:00 AM</Audit_Date> 
     <CIR_Duration>1</CIR_Duration> 
     <Overall_Training_Time>9.96</Overall_Training_Time> 
     <Question>CIT-HS-004</Question> 
     <Answer>No</Answer> 
    </Record> 
    <Record> 
     <Questionnaire_ID>288237</Questionnaire_ID> 
     <Survey_Name>Review</Survey_Name> 
     <Target>5000-AR</Target> 
     <Country>AR</Country> 
     <CIM_1>Easwaran Sreevidhya</CIM_1> 
     <Audit_Date>5/12/2014 12:00:00 AM</Audit_Date> 
     <CIR_Duration>1</CIR_Duration> 
     <Overall_Training_Time>9.96</Overall_Training_Time> 
     <Question>CIT-HS-005</Question> 
     <Answer>No</Answer> 
    </Record> 
    <Record> 
     <Questionnaire_ID>288237</Questionnaire_ID> 
     <Survey_Name>Review</Survey_Name> 
     <Target>5000-AR</Target> 
     <Country>AR</Country> 
     <CIM_1>Easwaran Sreevidhya</CIM_1> 
     <Audit_Date>5/12/2014 12:00:00 AM</Audit_Date> 
     <CIR_Duration>1</CIR_Duration> 
     <Overall_Training_Time>9.96</Overall_Training_Time> 
     <Question>CIT-HS-006</Question> 
     <Answer>Yes</Answer> 
    </Record> 
    <Record> 
     <Questionnaire_ID>288237</Questionnaire_ID> 
     <Survey_Name>Review</Survey_Name> 
     <Target>5000-AR</Target> 
     <Country>AR</Country> 
     <CIM_1>Easwaran Sreevidhya</CIM_1> 
     <Audit_Date>5/12/2014 12:00:00 AM</Audit_Date> 
     <CIR_Duration>1</CIR_Duration> 
     <Overall_Training_Time>9.96</Overall_Training_Time> 
     <Question>CIT-HS-007</Question> 
     <Answer>Yes</Answer> 
    </Record> 
    <Record> 
     <Questionnaire_ID>288237</Questionnaire_ID> 
     <Survey_Name>Review</Survey_Name> 
     <Target>5000-AR</Target> 
     <Country>AR</Country> 
     <CIM_1>Easwaran Sreevidhya</CIM_1> 
     <Audit_Date>5/12/2014 12:00:00 AM</Audit_Date> 
     <CIR_Duration>1</CIR_Duration> 
     <Overall_Training_Time>9.96</Overall_Training_Time> 
     <Question>CIT-HS-008</Question> 
     <Answer>No</Answer> 
    </Record> 
    <Record> 
     <Questionnaire_ID>288237</Questionnaire_ID> 
     <Survey_Name>Review</Survey_Name> 
     <Target>5000-AR</Target> 
     <Country>AR</Country> 
     <CIM_1>Easwaran Sreevidhya</CIM_1> 
     <Audit_Date>5/12/2014 12:00:00 AM</Audit_Date> 
     <CIR_Duration>1</CIR_Duration> 
     <Overall_Training_Time>9.96</Overall_Training_Time> 
     <Question>CIT-HS-009</Question> 
     <Answer>No</Answer> 
    </Record> 
    <Record> 
     <Questionnaire_ID>288237</Questionnaire_ID> 
     <Survey_Name>Review</Survey_Name> 
     <Target>5000-AR</Target> 
     <Country>AR</Country> 
     <CIM_1>Easwaran Sreevidhya</CIM_1> 
     <Audit_Date>5/12/2014 12:00:00 AM</Audit_Date> 
     <CIR_Duration>1</CIR_Duration> 
     <Overall_Training_Time>9.96</Overall_Training_Time> 
     <Question>CIT-HS-010</Question> 
     <Answer>Yes</Answer> 
    </Record> 
    <Record> 
     <Questionnaire_ID>288237</Questionnaire_ID> 
     <Survey_Name>Review</Survey_Name> 
     <Target>5000-AR</Target> 
     <Country>AR</Country> 
     <CIM_1>Easwaran Sreevidhya</CIM_1> 
     <Audit_Date>5/12/2014 12:00:00 AM</Audit_Date> 
     <CIR_Duration>1</CIR_Duration> 
     <Overall_Training_Time>9.96</Overall_Training_Time> 
     <Question>CIT-HS-011</Question> 
     <Answer>No</Answer> 
    </Record> 
    <Record> 
     <Questionnaire_ID>288237</Questionnaire_ID> 
     <Survey_Name>Review</Survey_Name> 
     <Target>5000-AR</Target> 
     <Country>AR</Country> 
     <CIM_1>Easwaran Sreevidhya</CIM_1> 
     <Audit_Date>5/12/2014 12:00:00 AM</Audit_Date> 
     <CIR_Duration>1</CIR_Duration> 
     <Overall_Training_Time>9.96</Overall_Training_Time> 
     <Question>CIT-HS-012</Question> 
     <Answer>Yes</Answer> 
    </Record> 
    <Record> 
     <Questionnaire_ID>288237</Questionnaire_ID> 
     <Survey_Name>Review</Survey_Name> 
     <Target>5000-AR</Target> 
     <Country>AR</Country> 
     <CIM_1>Easwaran Sreevidhya</CIM_1> 
     <Audit_Date>5/12/2014 12:00:00 AM</Audit_Date> 
     <CIR_Duration>1</CIR_Duration> 
     <Overall_Training_Time>9.96</Overall_Training_Time> 
     <Question>CIT-HS-013</Question> 
     <Answer/> 
    </Record> 
</root> 
+0

如果問題始終以「CIT」開頭,上述解決方案運作良好。我目前工作的實際文件有幾個問題不包含「CIT」一詞。 請問您是否可以修改XSLT,以便無論問題測試是什麼,都需要爲每個重複性問答標記創建獨特的記錄。 – Vivek 2014-11-25 06:44:09

+0

@Vivek如果你想記錄每個問題,那麼你需要一個可靠的測試來確定哪個字段是(或不是)問題(或答案)。 – 2014-11-25 12:25:36

+0

我在上面的XSLT之上使用了一個XSLT來獲取輸出。可以將它合併到一個XSLT中嗎? PFB是第二個使用的XSLT。 的 Vivek 2014-12-01 05:10:22