System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本申請涉及數據處理,具體為一種實現csv向xml的高效轉換方法及系統。
技術介紹
1、逗號分隔值(comma-separatedvalues,csv)與可擴展標記語言(extensiblemarkupla?nguage,xml)在不同的應用場景下具有不同的意義和優勢。而將csv轉換為xml可以增強數據的表達能力、互操作性、語義信息、驗證功能以及兼容性,盡管csv在簡單數據記錄中非常有效,但在需要復雜結構、數據交換標準化和語義增強的場景中,xml則提供了更大的靈活性和擴展性。
2、在將csv文件中的數據轉換為xml文件中的數據的過程中,由于csv文件中數據以文本的形式平鋪展現,在轉化為xml文件時一般通過數據對應的標識符確定轉換邏輯進行依次映射。但是,若csv文件中的數據存在隱含的嵌套結構(例如:主表和子表的關系),那么只基于數據標識符所映射的xml數據邏輯無法準確展現出不同數據之間的嵌套結構,從而導致轉換后的xml數據冗長且難以閱讀。
技術實現思路
1、本申請的目的在于提供一種實現csv向xml的高效轉換方法及系統,以解決現有技術中若csv文件中的數據存在隱含的嵌套結構,則轉換后的xml數據冗長且難以閱讀的技術問題。
2、為實現上述目的,本申請提供如下技術方案:
3、第一方面,本申請提出一種實現csv向xml的高效轉換方法的技術方案,所述方法包括:
4、基于csv文件,獲取原始數據;所述csv文件預先獲取;
5、對原始數據
6、基于所述修正數據,獲取唯一標識數據;所述唯一標識數據包括主表唯一標識符和子表唯一標識符;
7、基于所述唯一標識數據,將所述修正數據轉換為嵌套結構數據;所述嵌套結構數據至少表征所述原始數據中的各個數據之間的嵌套關系;
8、基于所述嵌套結構數據,獲取xml文件。
9、作為本申請技術方案中一個具體的方案,所述對原始數據進行預處理,獲取修正數據,包括:
10、基于原始數據,獲取第一列數據;所述第一列數據為所述原始數據中任意一列數據;
11、獲取所述第一列數據中各個數據的數據類型;
12、基于各個數據的數據類型,獲取異常數據類型;
13、更正所述第一列數據中所述異常數據類型所對應的數據,獲取第一列更正數據;
14、基于所述第一列更正數據,獲取修正數據。
15、作為本申請技術方案中一個具體的方案,所述基于所述第一列更正數據,獲取修正數據,包括:
16、基于所述第一列更正數據,獲取第一行數據;所述第一行數據為所述原始數據中任意一行數據;
17、獲取所述第一行數據中的數據個數;
18、基于所述數據個數,獲取缺失數據;
19、更正所述缺失數據,獲取第一行更正數據;
20、基于所述第一行更正數據,獲取修正數據。
21、作為本申請技術方案中一個具體的方案,所述基于所述修正數據,獲取唯一標識數據,包括:
22、基于所述修正數據,獲取第二列數據;所述第二列數據為所述修正數據中任意一列數據;
23、基于所述第二列數據,獲取第一數據類型數量和/或第一未缺失數據個數和/或列序數;
24、基于所述第一數據類型數量和/或第一未缺失數據個數和/或列序數,獲取主表唯一標識符可能性;
25、基于所述主表唯一標識符可能性,獲取主表唯一標識符;
26、基于所述主表唯一標識符,獲取唯一標識數據。
27、作為本申請技術方案中一個具體的方案,所述基于所述第一數據類型數量和/或第一未缺失數據個數和/或列序數,獲取主表唯一標識符可能性的計算公式如下:
28、
29、其中,γx表示修正數據中第x列數據對應的字段為主表唯一標識符的可能性;y表示修正數據的總列數;yx表示第x列數據所對應的列序數;hx表示第x列數據的第一未缺失數據個數;z為修正數據的總行數;gx為第x列數據的第一數據類型數量。
30、作為本申請技術方案中一個具體的方案,所述基于所述主表唯一標識符,獲取唯一標識數據之后,所述方法還包括:
31、基于所述修正數據,獲取第三列數據;所述第三列數據為所述修正數據中任意一列與所述第二列數據不相同的數據;
32、基于所述第三列數據,獲取第二數據類型數量和/或第二未缺失數據個數;
33、基于所述第二數據類型數量和/或所述第二未缺失數據個數,獲取子表唯一標識符可能性;
34、基于所述子表唯一標識符可能性,獲取子表唯一標識符;
35、基于所述主表唯一標識符和所述子表唯一標識符,獲取唯一標識數據。
36、作為本申請技術方案中一個具體的方案,所述基于所述第二數據類型數量和/或所述第二未缺失數據個數,獲取子表唯一標識符可能性的計算公式如下:
37、
38、其中,βr表示修正數據中第r列數據對應的字段為子表唯一標識符的可能性;y0表示第r列數據中數據類型相同的數據的最大行數;gr為第r列數據的第二數據類型數量;hr表示第r列數據的第二未缺失數據個數。
39、作為本申請技術方案中一個具體的方案,基于所述嵌套結構數據,獲取xml文件,包括:
40、基于所述嵌套結構數據,獲取第二行數據;所述第二行數據為所述嵌套結構數據中任意一行數據;
41、若所述第二行數據不存在嵌套結構,則將所述第二行數據直接轉換為xml文件數據;
42、若所述第二行數據存在嵌套結構,則將主表唯一標識符作為所述第二行數據的父標簽,將其他字段所對應的標識符作為子標簽,再將所述第二行數據轉換為xml文件數據。
43、作為本申請技術方案中一個具體的方案,所述基于所述嵌套結構數據,獲取xml文件之后,所述方法還包括:
44、將所述嵌套結構數據中所有的異常數據類型數據和缺失數據所對應的原始數據和更正數據生成錯誤報告;所述錯誤報告中原始數據和更正數據一一對應。
45、第二方面,本申請提出一種實現csv向xml的高效轉換系統的技術方案,該實現csv向xml的高效轉換系統包括:
46、讀取器,用于基于csv文件,獲取原始數據;所述csv文件預先獲取;
47、處理器,用于對原始數據進行預處理,獲取修正數據;
48、以及,基于所述修正數據,獲取唯一標識數據;所述唯一標識數據包括主表唯一標識符和子表唯一標識符;
49、以及,基于所述唯一標識數據,將所述修正數據轉換為嵌套結構數據;所述嵌套結構數據至少表征所述原始數據中的各個數據之間的嵌套關系;
50、以及,基于所述嵌套結構數據,獲取xml文件。
51、作為本申請技術方案中一個具體的方案,所述處理器還用于,基于原始數據,獲取第一列數據;所述第本文檔來自技高網...
【技術保護點】
1.一種實現CSV向XML的高效轉換方法,其特征在于,所述方法包括:
2.根據權利要求1所述的實現CSV向XML的高效轉換方法,其特征在于,所述對原始數據進行預處理,獲取修正數據,包括:
3.根據權利要求2所述的實現CSV向XML的高效轉換方法,其特征在于,所述基于所述第一列更正數據,獲取修正數據,包括:
4.根據權利要求1至3中任意一項所述的實現CSV向XML的高效轉換方法,其特征在于,所述基于所述修正數據,獲取唯一標識數據,包括:
5.根據權利要求4所述的實現CSV向XML的高效轉換方法,其特征在于,所述基于所述第一數據類型數量和/或第一未缺失數據個數和/或列序數,獲取主表唯一標識符可能性的計算公式如下:
6.根據權利要求4所述的實現CSV向XML的高效轉換方法,其特征在于,所述基于所述主表唯一標識符,獲取唯一標識數據之后,所述方法還包括:
7.根據權利要求6所述的實現CSV向XML的高效轉換方法,其特征在于,所述基于所述第二數據類型數量和/或所述第二未缺失數據個數,獲取子表唯一標識符可能性的計算公式如下
8.根據權利要求1至3中任意一項所述的實現CSV向XML的高效轉換方法,其特征在于,基于所述嵌套結構數據,獲取XML文件,包括:
9.根據權利要求3所述的實現CSV向XML的高效轉換方法,其特征在于,所述基于所述嵌套結構數據,獲取XML文件之后,所述方法還包括:
10.一種實現CSV向XML的高效轉換系統,其特征在于,包括:
...【技術特征摘要】
1.一種實現csv向xml的高效轉換方法,其特征在于,所述方法包括:
2.根據權利要求1所述的實現csv向xml的高效轉換方法,其特征在于,所述對原始數據進行預處理,獲取修正數據,包括:
3.根據權利要求2所述的實現csv向xml的高效轉換方法,其特征在于,所述基于所述第一列更正數據,獲取修正數據,包括:
4.根據權利要求1至3中任意一項所述的實現csv向xml的高效轉換方法,其特征在于,所述基于所述修正數據,獲取唯一標識數據,包括:
5.根據權利要求4所述的實現csv向xml的高效轉換方法,其特征在于,所述基于所述第一數據類型數量和/或第一未缺失數據個數和/或列序數,獲取主表唯一標識符可能性的計算公式如下:
6...
【專利技術屬性】
技術研發人員:陸一,
申請(專利權)人:北京碧地智能科技有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。