From 547cd05a8b105b569cfb58a5655597e0a009a75f Mon Sep 17 00:00:00 2001 From: dragdra Date: Mon, 14 Apr 2025 17:33:42 +0900 Subject: [PATCH] =?UTF-8?q?=EA=B3=B0=ED=94=BD=20JSON=20=EC=B1=84=EC=A0=90?= =?UTF-8?q?=EA=B8=B0=EC=A4=80=ED=91=9C,=20=EC=86=8C=EC=8A=A4=EC=BD=94?= =?UTF-8?q?=EB=93=9C=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 250414_DIC_0000A_채점결과.xlsx | Bin 0 -> 19931 bytes DIC_0000A.json | 44 ++++++----- DIC_0000B.json | 64 +++++++++------- gpdpScoring.js | 72 +++++++++++------- z.xbook | 2 +- .../0000/excel_채점기준표/DIC_0000A.xlsx | Bin 18615 -> 18636 bytes 6 files changed, 107 insertions(+), 75 deletions(-) create mode 100644 250414_DIC_0000A_채점결과.xlsx diff --git a/250414_DIC_0000A_채점결과.xlsx b/250414_DIC_0000A_채점결과.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..bca8da12c8bab15fcb672192015fb91f9ae54660 GIT binary patch literal 19931 zcmeHP-H#;KRUZ?BkdYNEf`pKeN-YryMLj*$J>QubYr1E~yWS6vcE)Qb5n66nRd?4; zbycORdOl*19LGWyR`>`u!XPVtKnfBB40d22od1ER@WzWjB6ipE3ol4K@H_Wb)vbH` zPEXJ52o$ib*{(WuzV5l_oO|ki)b6z}JpQGb;=jLo?A3ce`nj1I`ulYNkAudY#0%2K zQIs5Xqv&Avco@tQWbJ8OS%+Sd`cb%EvuEdOmKQpa>xcdI+VlH6_2rtCW-N4B5QW}) z?ZiuKPj5W=#M&({U>S(gfgh(9xP<9?ZIEU0YNL@l18>OE*(mlxJn2QrkY%_{`i+=5 z2dwWknsalD4QL>F)HW2J)>U`CmRxo1nzertL-N_Yqh8N)-Ws6yi8>>7|D~0@Y@FeccKoh%hVywP6G63X$^5d$prJ4 zDxUh{hL!r66GUfj#sD(5BqdzDS& zg>J%*5Iw^{IN*@^Va*EJ5H9>2cTj7ecl^d$&U`z7AB0&-04GTHD0n=D0-?cH-2uwK@JDd2pj73bIpZD|9>jznm^7a1WYXX43DL zLhYUTm8GqcKSv0%alGyA?asDc^5Y21anMqsOO@yR&a&Mucvg_a?PY}ieFMgrKX$0|<*$VtaQB+E*j#E+42pN$zJLh}3UgCBnO!F$$cAH4hF zEAM~!%0GYjo$q}3%HIoK3gHzN_N#;se()y`-+tM;|K2+f-gwiDkJKgwef)Q?fAr%& zH6tQ|B;qH3_U=#LfA^C=|HFU(n>P&Tn+fYy(f9qKms&TyBkNW)MBBJwRL#9^az2Xv z0rM3KHUMt}>+NiyAl^J-feEkesm8mVAbFS&pBdd%bln>yqs%u*zBU*th&Q4rXh(_B z0M|%X#lrieux}QgjH-CI7&|n{?yykl+U-${tXVjvV*Ad(Q`FoISeT&%3BAmsXVHP@ z8Cv%>-&gEje42&HQ#D8-)NG3zpFTsB)Z}c(Jv>aHlwQ*+uXQqwWGk)>Mie3 z#Y8|bUaW|4E<?*);y?Rsfy zqIoVsdn>%JG2|;_x8Dd(hAL)~`3EMR*I5)*F}I?F&VUVL6YicL4yw3U(*w9DvvwmC z8{SC!@rm)-ztD`0w6H&|@CYGDzu4 zrXKp?q_iFQ$lF4~=V^PrwuwQ^6g*e7WPKXm&tQt)Vxw@^LsX1=|K}O{^9)`4KcAsb zi{;DD%Q6)sOH)B2YHeP54^J(;dwvk?(L4F|l-J%V1|W9_K%(Q*Dqi^_77uVqkqiL} zUO!=+#!8~>1wR|?4H!+J*!(rJpXRLlsTD_6wxX@Vp zsCmLi&S%ZiYB1W_N^rM0-G8Pua>1Z5Ebk;enu4$zTR~_Yt=Co-nhQ0{Vexvchc{hZ z4r6p$O0^&h`j`}TvP5|8nX$-&RJM4<>{T`t9@kGXVZj5MZZNw>*5;4Y+?r>a>YNtG6L1#91D0n?nw=>kPM~vFEp^~`74^_I zqwc(M=Whx{{AD$z>c;=innJ??W)NB~^?-xP-Go^bDeJW;$p#U!P(1LRodn}P&mHg< z%+TU7jE{vB{+oD*^ebXc@Ze#M7s2e7-?tJU!$~$sJZ~3iiF@A}%PBk@pRu55tdc}JP z?-;(&Rb7jUx_8mhTbT791!8q7jd920Al^;5cXcE8B)<$&G2jZXqjwm>48mJp&+^^l z;{Btvga{$ALQ<5-9Gl3<(MrOW>7_v>%<+j-jFu&F^K9ahf=foqE{XYsnu!6{$MVEY zuXex}NmjI)f~&Ap5I%~@rcmB&GUJ=iv?dcTiW58P0w&9jCz~v{6pT0Scv#^~7+$^h zc>cwpBRrkEthOBd{C_?F49!|{`3dm z%V~HtBCpKOi zxm?b;K@^bNjS?4|X{sF|KpSg;*CV$@RX3pDEQ;}OH_EbThzr+e{U~GsE*k|!egU?Q zmseLW_7vX7y-EjT{3Rn$U(+QN$}a^!aYOv8+yw7OW@{bya$zivgOi)1Vb{X~GVS}x z`<6?EoJwPqrj$zMJ0ETmF_xxE#@&%0pv*Ef13cYhX&64lXRI4|ydW*5z$mU5%=XKN z>os|O!*l)7aHYiB^$#O4q^;NFwZNL^eJ_)OmW1wKOaAi5PtDBG->-=zWZY+T@qARW zyR>wKdg5Z)NZ-ZfVmUmd{bW|+^{~uhuXb8XWG|ixv1WFJ4lA#%Vow@9keypTCx?kB zwD7Nma3^=NhK$z}){*a0g}N}i+-lCXC?qXslp>;D5D)l>QxZ0FLj0bO5L>ReMEp)g z*bo}?Hf&*M6QVvkqT-kmvqKk~Xaphyi>QDcZanzgd!N4f!?ngCMQ4uER#CRDcJA0s zw6S&P;X7|Wc>PBzc1Oi_WB<;aeTP@Pb9X*{>$~^w-FxsyZ*7)D4QN!VMF~=<1=Cd2 zvg>w9z@N7X^KfH9g?4nP!knr%!5rpOm^W26ZT0!5Z@u~OZJ6cNhkx;girAR~QBh&O zRAF9Ip`~(e6XxN@oC@s-sBE>ue4%6x?^D`0ud-8Aq zFy0i1O8b^d6_zv=7Pa;f=HZ40?dVX2`Etn|`%IPgEosaN^Ke7!uZ|8?n6H$~k<=CD z%NldS9A~aW73MaT*ut-Isj^?u*mK-*%Z!0l0hMH-1~k{&8ABc`f{%oDbrC?3B5_QQAnSnpSn7@Ast zcRJv9ba1;|v>R8vi}t|wz4 zm|T7gtO}4hq^ZVzvo6C>43$7I^}!fe6(EyCQ%w#CT0I>D!ze)qs}f{dphC7XU_pYO zj)7s6po3KjGA}gMu!jUaF#y9TK?kc6WXL!5khk@i2Zm9C4pt?|m~X0qiZOVj0gJ4@ zC}TCZKn|DDBIJleT;iqM?_)cx=WZuSlwbm(dP~!0n4#Ls2w^j&BQ$(sA^oN{XVIuq zfr&gqrcL?$&dW33e(ei0GxYaGG38S|#&q$So`TDzP4pZG38o0Oxt?LMy?xffe55!@ z*U%@h?WIQII|Ff8OH5)PyW@wVrsd_HV8YjTSc2))+Qt)>wN|v1&udpEQSnTBn$Hrx zcztVg_ZFsS{BUm+$5?##+}q`8#(d+36U8UIcVnE9@-_o3T_Pv)o7*fHdDsMpd#vI2 z`7SvtjRQa1@%eH-9$==V69sz%zbAYIi=ix^+Z2=>(20ip6c^{k(iDEfFP+Fs=+q1t z(G=$m9BreU25)aeX)p)%M%gIw2#w6FHB-*-3yX9Qh=v;n9!!hz`7NvkfHg||_1a5a zx7%HIT&Lb+wpX8DS@h~`d10yEa$3FCoHN&4aazB}J3#OPF}ig%@19NS9$IejuqPkq zTzXrg+jx_DuuQ<>l=ivNysH%7fc)Zijc!WqFu~2$#+<#I~p-DTq^G&gZ5dBCXo z9ttj4axP3wHr#k(t+cZiv|sj~{KnPCW@hLw587fn^3j%y3NDuxw3jwJTWGeMAiiAh zCO??CKk(BR^0UF^Of9k3G`fNolAejOmX7X<1)JB z8Q5Ztk7E=EVXNn0iv!Xqjiy!T>;uw>Q!jKqcd|-Y=VN^R#_&zX#hvSU2`2!C^(l4U$f0{-O&*J*h9N%e+3Yd5eoOCNn$bsa3D59P-n zss#K=1#{?U)o(deQC&woEU}MM)Gm3uj*gCIk6K&})O2>^#T(c8RuESAL;5;}LyPz7 zX952DU+=#BtG_riLx1#HfNylLHjcyRcgSQ<|U2|YDi0ed14 z+e(*K2@QUn=Lo8Ta`JbT&-$PdYbk3uwz?q#PQ0^!^UnfsCJKv@_Npe}U7RAK*q!%uxy>m<@ z5#Gzo>_@Szp}?Ia8xCI7DUU4L;NZn9L!m;059+8Q9>W{L>EF^qDN*_F^e=1aeDu#0 zNhY5{9{A`^tTWIzwn_&7WpM`5DRokPJDMc@_HT01GSI3Y!P2?tGn|r3w#2zqdrK$Q zXIdojZ+*2?q4+eJPOMKDNaF9WDboi!q5je*3BUAor8du { @@ -138,19 +140,32 @@ function getGpdpScore(gpdpData, scoringJson, index) { // } // }); // } + if (type == "boolean") { + const items = xpath.select(ele, gpdpXmlDoc); + + // xpath 결과값을 반환하는 요소가 있을 경우 + if (items) { + totalScore += point; + scoringResult[key] = point; + console.log("✅ 찾는 요소 존재함"); + } + else { + scoringResult[key] = 0; + console.log("❌ 찾는 요소 없음"); + } + } // 이펙트 효과의 이름과 속성값을 비교 - if (type == "effects") { + else if (type == "effects") { const items = xpath.select(ele, gpdpXmlDoc); let matched = false; - - + // 각 Item 요소별 이름과 속성값을 구하고 정답과 비교 for (const item of items) { const name = xpath.select1('Name/@value', item)?.value; const value = xpath.select1(`EffectData/${option?.replace(/"/g, '')}/@value`, item)?.value; const resultArray = [name, value]; - + if (JSON.stringify(resultArray) === JSON.stringify(rightAnswer)) { totalScore += point; scoringResult[key] = point; @@ -159,7 +174,7 @@ function getGpdpScore(gpdpData, scoringJson, index) { break; } } - + if (!matched) { scoringResult[key] = 0; console.log("❌ 정답 없음:", rightAnswer); @@ -198,13 +213,13 @@ function getGpdpScore(gpdpData, scoringJson, index) { } } } - else if (type == "isExist") { + else if (type == "exists") { const result = xpath.select(ele, gpdpXmlDoc); const isMatch = result.some(v => { if (v.value === rightAnswer) { totalScore += point; scoringResult[key] = point; - console.log("🚀 ~ result.forEach ~ 정답 일치:", rightAnswer) + console.log(`✅ 정답 일치 > [작성답안]:${v.value} [정답]:${rightAnswer}`); return true; } return false; @@ -212,7 +227,7 @@ function getGpdpScore(gpdpData, scoringJson, index) { if (!isMatch) { scoringResult[key] = 0; - console.log("🚀 ~ result.forEach ~ 오답:", rightAnswer) + console.log(`❌ 정답 없음 > [정답]:${rightAnswer}`); } } @@ -231,24 +246,29 @@ function getGpdpScore(gpdpData, scoringJson, index) { console.log('ele not matched, ' + result[0].value); } } - else if (type == "color") { - let result = xpath.select(ele, gpdpXmlDoc); - if (result.length == 0) { - scoringResult[key] = 0; - console.log('ele not found'); - continue; - } - const hexColor = parseColorToHex(result[0].value); - if (hexColor === rightAnswer) { - totalScore += point; - scoringResult[key] = point; - console.log('color matched, ' + hexColor); - } else { + else if (type === "color") { + const items = xpath.select(ele, gpdpXmlDoc); + let matched = false; + + for (const item of items) { + const color = parseColorToHex(item.value); + // console.log("🚀 ~ getGpdpScore ~ color:", color); + // console.log("🚀 ~ getGpdpScore ~ rightColor:", rightAnswer); + if (color === rightAnswer) { + totalScore += point; + scoringResult[key] = point; + matched = true; + console.log(`✅ 정답 일치 > [작성답안]:${color} [정답]:${rightAnswer}`); + break; + } + } + if (!matched) { scoringResult[key] = 0; - console.log('color not matched, ' + hexColor); + console.log(`❌ 정답 없음 > [정답]:${rightAnswer}`); } } + else if (type == "multi") { try { const result = xpath.select(ele, gpdpXmlDoc); @@ -308,7 +328,7 @@ function getGpdpScore(gpdpData, scoringJson, index) { const width = Math.round(Math.abs(x2 - x1)); const height = Math.round(Math.abs(y2 - y1)); - if ( width === rightAnswer["width"] && height === rightAnswer["height"]) { + if (width === rightAnswer["width"] && height === rightAnswer["height"]) { totalScore += point; scoringResult[key] = point; matched = true; @@ -327,13 +347,13 @@ function getGpdpScore(gpdpData, scoringJson, index) { const endColorXpath = scoringData[key].endColor; let matched = false; - for ( const item of items) { + for (const item of items) { const startColor = parseColorToHex(xpath.select1(startColorXpath, item)?.value); const endColor = parseColorToHex(xpath.select1(endColorXpath, item)?.value); console.log(startColor + ":" + rightAnswer["startColor"], endColor + ":" + rightAnswer["endColor"]); - if ( startColor === rightAnswer["startColor"] && endColor === rightAnswer["endColor"]) { + if (startColor === rightAnswer["startColor"] && endColor === rightAnswer["endColor"]) { totalScore += point; scoringResult[key] = point; matched = true; diff --git a/z.xbook b/z.xbook index b336228..41d66b1 100644 --- a/z.xbook +++ b/z.xbook @@ -1 +1 @@ -[{"kind":2,"language":"xpath","value":"//Layer[Name[@value='Tracking']]/Effects/Item/Name/@value"},{"kind":2,"language":"xpath","value":"//Layer/Shapes/Shape[*[starts-with(name(), 'gradient')]]"},{"kind":2,"language":"xpath","value":"//Layer/Shapes/Shape"}] \ No newline at end of file +[{"kind":2,"language":"xpath","value":"//Layer[Name[@value='Tracking']]/Effects/Item/Name/@value"},{"kind":2,"language":"xpath","value":"//Layer/Shapes/Shape[*[starts-with(name(), 'gradient')]]"},{"kind":2,"language":"xpath","value":"//Layer/Shapes/Shape/shape_type/@value"}] \ No newline at end of file diff --git a/회차별채점자료/0000/excel_채점기준표/DIC_0000A.xlsx b/회차별채점자료/0000/excel_채점기준표/DIC_0000A.xlsx index 571c6b59f78c4f9d4866ba1f2d20432117673643..1bd2874083cc8bbf0c4224fbacd252453f9af892 100644 GIT binary patch delta 11684 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 delta 11677 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