Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
V
vue3_onlineEditor
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
pangchong
vue3_onlineEditor
Commits
0864d8c4
Commit
0864d8c4
authored
Apr 02, 2025
by
qlintonger xeno
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: 修复额外内容+1234
parent
a9bc5113
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
49 additions
and
24 deletions
+49
-24
src/lib/XMLProcessor/src/core/Processing.ts
+49
-24
No files found.
src/lib/XMLProcessor/src/core/Processing.ts
View file @
0864d8c4
...
@@ -70,31 +70,56 @@ export class Processing {
...
@@ -70,31 +70,56 @@ export class Processing {
Added
:
[]
Added
:
[]
}
}
// 获取序列号、hash以及标签中任一不相同的节点
// 获取序列号、hash以及标签中任一不相同的节点
let
nonSameInOld
=
resultAFlatted
.
filter
(
a
=>
{
const
nonSameInOld
=
resultAFlatted
.
filter
(
a
=>
{
return
!
resultBFlatted
.
find
(
v
=>
v
.
chained
.
join
(
'$'
)
===
a
.
chained
.
join
(
'$'
)
&&
v
.
hash
===
a
.
hash
&&
a
.
label
===
v
.
label
)
return
!
resultBFlatted
.
find
(
v
=>
})
v
.
chained
.
join
(
'$'
)
===
a
.
chained
.
join
(
'$'
)
&&
let
nonSameInNew
=
resultBFlatted
.
filter
(
a
=>
{
v
.
hash
===
a
.
hash
&&
return
!
resultAFlatted
.
find
(
v
=>
v
.
chained
.
join
(
'$'
)
===
a
.
chained
.
join
(
'$'
)
&&
v
.
hash
===
a
.
hash
&&
a
.
label
===
v
.
label
)
a
.
label
===
v
.
label
})
);
});
const
nonSameInNew
=
resultBFlatted
.
filter
(
a
=>
{
return
!
resultAFlatted
.
find
(
v
=>
v
.
chained
.
join
(
'$'
)
===
a
.
chained
.
join
(
'$'
)
&&
v
.
hash
===
a
.
hash
&&
a
.
label
===
v
.
label
);
});
// 如果标签和序列号相同,但是hash不同,则视为修改
// 如果标签和序列号相同,但是hash不同,则视为修改
let
nodeChangedInOld
=
nonSameInOld
.
filter
(
a
=>
{
const
nodeChangedInOld
=
nonSameInOld
.
filter
(
a
=>
{
return
nonSameInNew
.
find
(
v
=>
v
.
chained
.
join
(
'$'
)
===
a
.
chained
.
join
(
'$'
)
&&
a
.
label
===
v
.
label
)
return
nonSameInNew
.
find
(
v
=>
})
v
.
chained
.
join
(
'$'
)
===
a
.
chained
.
join
(
'$'
)
&&
let
nodeChangedInNew
=
nonSameInNew
.
filter
(
a
=>
{
a
.
label
===
v
.
label
return
nonSameInOld
.
find
(
v
=>
v
.
chained
.
join
(
'$'
)
===
a
.
chained
.
join
(
'$'
)
&&
a
.
label
===
v
.
label
)
);
})
});
const
nodeChangedInNew
=
nonSameInNew
.
filter
(
a
=>
{
return
nonSameInOld
.
find
(
v
=>
v
.
chained
.
join
(
'$'
)
===
a
.
chained
.
join
(
'$'
)
&&
a
.
label
===
v
.
label
);
});
// 再获取剩下来不同的节点
// 再获取剩下来不同的节点
let
stillDiffInOld
=
nonSameInOld
.
filter
(
a
=>
{
const
stillDiffInOld
=
nonSameInOld
.
filter
(
a
=>
{
return
!
nodeChangedInOld
.
find
(
v
=>
v
.
key
===
a
.
key
)
return
!
nodeChangedInOld
.
find
(
v
=>
v
.
key
===
a
.
key
);
})
});
let
stillDiffInNew
=
nonSameInNew
.
filter
(
a
=>
{
return
!
nodeChangedInNew
.
find
(
v
=>
v
.
key
===
a
.
key
)
const
stillDiffInNew
=
nonSameInNew
.
filter
(
a
=>
{
})
return
!
nodeChangedInNew
.
find
(
v
=>
v
.
key
===
a
.
key
);
for
(
const
node
of
stillDiffInOld
)
{
});
let
samePosInCurrent
=
resultBFlatted
.
find
(
v
=>
v
.
chained
.
join
(
'$'
)
===
node
.
chained
.
join
(
'$'
))
console
.
log
(
'node-old-reflect'
,
samePosInCurrent
)
// 将修改的节点添加到结果中
}
dataForOld
.
Changed
.
push
(...
nodeChangedInOld
);
console
.
log
(
'non-same'
,
{
nonSameInNew
,
nonSameInOld
,
nodeChangedInOld
,
nodeChangedInNew
,
stillDiffInNew
,
stillDiffInOld
})
dataForNew
.
Changed
.
push
(...
nodeChangedInNew
);
// 将删除的节点添加到结果中
dataForOld
.
Deleted
.
push
(...
stillDiffInOld
);
// 将新增的节点添加到结果中
dataForNew
.
Added
.
push
(...
stillDiffInNew
);
return
{
return
{
dataForNew
,
dataForNew
,
dataForOld
,
dataForOld
,
...
@@ -104,7 +129,7 @@ export class Processing {
...
@@ -104,7 +129,7 @@ export class Processing {
treeNew
:
resultB
,
treeNew
:
resultB
,
xmlContentOld
:
this
.
serializeXML
(
treeA
),
xmlContentOld
:
this
.
serializeXML
(
treeA
),
xmlContentNew
:
this
.
serializeXML
(
treeB
)
xmlContentNew
:
this
.
serializeXML
(
treeB
)
}
}
;
}
}
// 处理 XML 字符串的方法,返回树形数据和 XML DOM 对象
// 处理 XML 字符串的方法,返回树形数据和 XML DOM 对象
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment