-1
我在網上發現了許多「轉換器」,它們會爲您執行此操作,但我一直無法找到任何可輕鬆實現的源代碼。我想知道是否有人會爲我提供建議,甚至爲我提供代碼,以便爲我完成這項任務。我正在嘗試轉換爲XML,因此它將更容易解析。使用Javascript代碼將Cognos XML Schema文件轉換爲XML
我想這個轉換(COGNOS XML架構)...
<?xml version="1.0" encoding="utf-8" ?>
- <dataset xmlns="http://developer.cognos.com/schemas/xmldata/1/" xmlns:xs="http://www.w3.org/2001/XMLSchema-instance">
- <!--
<dataset
xmlns="http://developer.cognos.com/schemas/xmldata/1/"
xmlns:xs="http://www.w3.org/2001/XMLSchema-instance"
xs:schemaLocation="http://developer.cognos.com/schemas/xmldata/1/ xmldata.xsd"
>
-->
- <metadata>
<item name="ROOT_NODE_ID" type="xs:decimal" precision="38" />
<item name="LEVEL1_ID" type="xs:string" length="2002" />
<item name="LEVEL1_NAME" type="xs:string" length="512" />
<item name="LEVEL2_ID" type="xs:string" length="2002" />
<item name="LEVEL2_NAME" type="xs:string" length="512" />
<item name="LEVEL3_ID" type="xs:string" length="2002" />
<item name="LEVEL3_NAME" type="xs:string" length="512" />
<item name="LEVEL4_ID" type="xs:string" length="2002" />
<item name="LEVEL4_NAME" type="xs:string" length="512" />
<item name="LEVEL5_ID" type="xs:string" length="2002" />
<item name="LEVEL5_NAME" type="xs:string" length="512" />
<item name="LEVEL6_ID" type="xs:string" length="2002" />
<item name="LEVEL6_NAME" type="xs:string" length="512" />
<item name="LEVEL7_ID" type="xs:string" length="2002" />
<item name="LEVEL7_NAME" type="xs:string" length="512" />
<item name="LEVEL8_ID" type="xs:string" length="2002" />
<item name="LEVEL8_NAME" type="xs:string" length="512" />
<item name="LEVEL9_ID" type="xs:string" length="2002" />
<item name="LEVEL9_NAME" type="xs:string" length="512" />
<item name="LEVEL10_ID" type="xs:string" length="2002" />
<item name="LEVEL10_NAME" type="xs:string" length="512" />
</metadata>
- <data>
- <row>
<value>5</value>
<value>5</value>
<value>Global Root</value>
<value>41</value>
<value>Company</value>
<value xs:nil="true" />
<value xs:nil="true" />
<value xs:nil="true" />
<value xs:nil="true" />
<value xs:nil="true" />
<value xs:nil="true" />
<value xs:nil="true" />
<value xs:nil="true" />
<value xs:nil="true" />
<value xs:nil="true" />
<value xs:nil="true" />
<value xs:nil="true" />
<value xs:nil="true" />
<value xs:nil="true" />
<value xs:nil="true" />
<value xs:nil="true" />
</row>
- <row>
<value>5</value>
<value>5</value>
<value>Global Root</value>
<value>41</value>
<value>Company</value>
<value>101590</value>
<value>Customer</value>
<value>101591</value>
<value>Customer -All Sites</value>
<value>125083</value>
<value>Site 1</value>
<value xs:nil="true" />
<value xs:nil="true" />
<value xs:nil="true" />
<value xs:nil="true" />
<value xs:nil="true" />
<value xs:nil="true" />
<value xs:nil="true" />
<value xs:nil="true" />
<value xs:nil="true" />
<value xs:nil="true" />
</row>
</data>
</dataset>
對此(XML)....
<?xml version="1.0" encoding="UTF-8"?>
<rows>
<row>
<ROOT_NODE_ID>5</ROOT_NODE_ID>
<LEVEL1_ID>5</LEVEL1_ID>
<LEVEL1_NAME>Global Root</LEVEL1_NAME>
<LEVEL2_ID>41</LEVEL2_ID>
<LEVEL2_NAME>Company</LEVEL2_NAME>
<LEVEL3_ID></LEVEL3_ID>
<LEVEL3_NAME></LEVEL3_NAME>
<LEVEL4_ID></LEVEL4_ID>
<LEVEL4_NAME></LEVEL4_NAME>
<LEVEL5_ID></LEVEL5_ID>
<LEVEL5_NAME></LEVEL5_NAME>
<LEVEL6_ID></LEVEL6_ID>
<LEVEL6_NAME></LEVEL6_NAME>
<LEVEL7_ID></LEVEL7_ID>
<LEVEL7_NAME></LEVEL7_NAME>
<LEVEL8_ID></LEVEL8_ID>
<LEVEL8_NAME></LEVEL8_NAME>
<LEVEL9_ID></LEVEL9_ID>
<LEVEL9_NAME></LEVEL9_NAME>
<LEVEL10_ID></LEVEL10_ID>
<LEVEL10_NAME></LEVEL10_NAME>
</row>
<row>
<ROOT_NODE_ID>5</ROOT_NODE_ID>
<LEVEL1_ID>5</LEVEL1_ID>
<LEVEL1_NAME>Global Root</LEVEL1_NAME>
<LEVEL2_ID>41</LEVEL2_ID>
<LEVEL2_NAME>Company</LEVEL2_NAME>
<LEVEL3_ID>101590</LEVEL3_ID>
<LEVEL3_NAME>Customer</LEVEL3_NAME>
<LEVEL4_ID>101591</LEVEL4_ID>
<LEVEL4_NAME>Customer -All Sites</LEVEL4_NAME>
<LEVEL5_ID>125083</LEVEL5_ID>
<LEVEL5_NAME>Site 1</LEVEL5_NAME>
<LEVEL6_ID></LEVEL6_ID>
<LEVEL6_NAME></LEVEL6_NAME>
<LEVEL7_ID></LEVEL7_ID>
<LEVEL7_NAME></LEVEL7_NAME>
<LEVEL8_ID></LEVEL8_ID>
<LEVEL8_NAME></LEVEL8_NAME>
<LEVEL9_ID></LEVEL9_ID>
<LEVEL9_NAME></LEVEL9_NAME>
<LEVEL10_ID></LEVEL10_ID>
<LEVEL10_NAME></LEVEL10_NAME>
</row>
</rows>
您到目前爲止嘗試過什麼?爲什麼你需要Javascript來解決這個問題,而不是服務器端技術。我認爲這個問題需要更多關於你嘗試過的細節,以及爲什麼你被困住了。 – Zoidberg 2012-02-27 13:25:50
試圖用JS解決這個問題將會讓你無處可尋。如果你想從默認的Cognos Xml報表轉換到你想要的Xml結構,你可以通過Xslt來完成。我已經這樣做了,但是由於我轉向使用SDK中的Webservice,需要一些時間來查找示例代碼。如果您可以使用Cognos SDK(即,如果您花費了額外的成本併購買了它),我也可以提供一個示例。 – Filburt 2012-02-27 13:40:08
謝謝Filburt,我很想看你的示例代碼。而且我有SDK,但據我所知,這隻適用於Java和C#?我需要這樣做,因爲我正在JavaScript中重新創建Cognos樹對象,然後我將在Cognos報告中實現一個HTML對象。我的BI團隊已經指定了我,因爲我們的樹節點列表很長,Cognos樹對象不再適用於我們。但我期待您的樣片代碼! – Zack 2012-02-27 13:46:46