|
@@ -251,7 +251,9 @@ export const getCustomInfo = (xml: string): CustomInfo => {
|
|
showSpeed: true,
|
|
showSpeed: true,
|
|
parsedXML: xml,
|
|
parsedXML: xml,
|
|
};
|
|
};
|
|
|
|
+ console.time('解析xml 耗时3')
|
|
const xmlParse = new DOMParser().parseFromString(xml, "text/xml");
|
|
const xmlParse = new DOMParser().parseFromString(xml, "text/xml");
|
|
|
|
+ console.timeEnd('解析xml 耗时3')
|
|
const words: any = xmlParse.getElementsByTagName("words");
|
|
const words: any = xmlParse.getElementsByTagName("words");
|
|
for (const word of words) {
|
|
for (const word of words) {
|
|
if (word && word.textContent?.trim() === "隐藏速度") {
|
|
if (word && word.textContent?.trim() === "隐藏速度") {
|
|
@@ -361,7 +363,9 @@ export const onlyVisible = (xml: string, partIndex: number, resourceType?: strin
|
|
if (!xml) return "";
|
|
if (!xml) return "";
|
|
// console.log('原始xml')
|
|
// console.log('原始xml')
|
|
const detailId = state.examSongId + "";
|
|
const detailId = state.examSongId + "";
|
|
|
|
+ console.time('解析xml 耗时4')
|
|
const xmlParse = new DOMParser().parseFromString(xml, "text/xml");
|
|
const xmlParse = new DOMParser().parseFromString(xml, "text/xml");
|
|
|
|
+ console.timeEnd('解析xml 耗时4')
|
|
const partList = xmlParse.getElementsByTagName("part-list")?.[0]?.getElementsByTagName("score-part") || [];
|
|
const partList = xmlParse.getElementsByTagName("part-list")?.[0]?.getElementsByTagName("score-part") || [];
|
|
const partListNames = Array.from(partList).map((item) => item.getElementsByTagName("part-name")?.[0]?.textContent?.trim() || "");
|
|
const partListNames = Array.from(partList).map((item) => item.getElementsByTagName("part-name")?.[0]?.textContent?.trim() || "");
|
|
const parts: any = xmlParse.getElementsByTagName("part");
|
|
const parts: any = xmlParse.getElementsByTagName("part");
|
|
@@ -531,7 +535,9 @@ export const onlyVisible2 = (xml: string): string => {
|
|
if (!xml) return "";
|
|
if (!xml) return "";
|
|
// console.log('原始xml')
|
|
// console.log('原始xml')
|
|
//const detailId = state.examSongId + "";
|
|
//const detailId = state.examSongId + "";
|
|
|
|
+ console.time('解析xml 耗时5')
|
|
const xmlParse = new DOMParser().parseFromString(xml, "text/xml");
|
|
const xmlParse = new DOMParser().parseFromString(xml, "text/xml");
|
|
|
|
+ console.timeEnd('解析xml 耗时5')
|
|
const partList = xmlParse.getElementsByTagName("part-list")?.[0]?.getElementsByTagName("score-part") || [];
|
|
const partList = xmlParse.getElementsByTagName("part-list")?.[0]?.getElementsByTagName("score-part") || [];
|
|
//const partListNames = Array.from(partList).map((item) => item.getElementsByTagName("part-name")?.[0]?.textContent?.trim() || "");
|
|
//const partListNames = Array.from(partList).map((item) => item.getElementsByTagName("part-name")?.[0]?.textContent?.trim() || "");
|
|
//state.partListNames = partListNames;
|
|
//state.partListNames = partListNames;
|
|
@@ -624,7 +630,9 @@ export const formatZoom = (num = 1) => {
|
|
/** 妙极客多分轨的曲子,可能没有part-name标签,需要手动加上该标签 */
|
|
/** 妙极客多分轨的曲子,可能没有part-name标签,需要手动加上该标签 */
|
|
export const xmlAddPartName = (xml: string) => {
|
|
export const xmlAddPartName = (xml: string) => {
|
|
if (!xml) return "";
|
|
if (!xml) return "";
|
|
|
|
+ console.time('解析xml 耗时')
|
|
const xmlParse = new DOMParser().parseFromString(xml, "text/xml");
|
|
const xmlParse = new DOMParser().parseFromString(xml, "text/xml");
|
|
|
|
+ console.timeEnd('解析xml 耗时')
|
|
const scoreParts = Array.from(xmlParse.getElementsByTagName("score-part"));
|
|
const scoreParts = Array.from(xmlParse.getElementsByTagName("score-part"));
|
|
for (const scorePart of scoreParts) {
|
|
for (const scorePart of scoreParts) {
|
|
if (scorePart.getElementsByTagName("part-name").length === 0) {
|
|
if (scorePart.getElementsByTagName("part-name").length === 0) {
|
|
@@ -646,8 +654,9 @@ export const xmlAddPartName = (xml: string) => {
|
|
*/
|
|
*/
|
|
export const formatXML = (xml: string, xmlUrl?: string): string => {
|
|
export const formatXML = (xml: string, xmlUrl?: string): string => {
|
|
if (!xml) return "";
|
|
if (!xml) return "";
|
|
|
|
+ console.time('解析xml 耗时7')
|
|
const xmlParse = new DOMParser().parseFromString(xml, "text/xml");
|
|
const xmlParse = new DOMParser().parseFromString(xml, "text/xml");
|
|
-
|
|
|
|
|
|
+ console.timeEnd('解析xml 耗时7')
|
|
// 声调
|
|
// 声调
|
|
const fifths = xmlParse.getElementsByTagName("fifths");
|
|
const fifths = xmlParse.getElementsByTagName("fifths");
|
|
if (fifths && fifths.length) {
|
|
if (fifths && fifths.length) {
|