@@ -197,16 +197,9 @@ private object[] FindCurrentLevel(object[] data, int[] position)
197
197
198
198
var current = data ;
199
199
200
- #if DEBUG
201
- Debug . Log ( "FCL Start" ) ;
202
- #endif
203
-
204
200
// [ 1, 0, 1]
205
201
while ( position . Length != 0 )
206
202
{
207
- #if DEBUG
208
- Debug . Log ( "FCL: " + position [ 0 ] + " " + ( ( object [ ] ) current [ 2 ] ) . Length ) ;
209
- #endif
210
203
current = ( object [ ] ) ( ( object [ ] ) current [ 2 ] ) [ position [ 0 ] ] ;
211
204
position = RemoveFirstIntegerArray ( position ) ;
212
205
}
@@ -370,6 +363,15 @@ private object[] Parse(char[] input)
370
363
if ( c == ' ' && ! hasNodeNameEnded )
371
364
{
372
365
hasNodeNameEnded = true ;
366
+ var nodeNameLow = nodeName . ToLower ( ) ;
367
+ if ( nodeNameLow == "area" || nodeNameLow == "base" || nodeNameLow == "br" ||
368
+ nodeNameLow == "embed" || nodeNameLow == "hr" || nodeNameLow == "iframe" ||
369
+ nodeNameLow == "img" || nodeNameLow == "input" || nodeNameLow == "link" ||
370
+ nodeNameLow == "meta" || nodeNameLow == "param" || nodeNameLow == "source" ||
371
+ nodeNameLow == "track" )
372
+ {
373
+ isSelfClosingNode = true ;
374
+ }
373
375
}
374
376
375
377
if ( hasNodeNameEnded )
@@ -458,11 +460,7 @@ private string Serialize(object[] data, string padding)
458
460
var tagList = "" ;
459
461
for ( var i = 0 ; i != tagNames . Length ; i ++ )
460
462
{
461
- var tagValue = ( string ) tagValues [ i ] ;
462
- Debug . Log ( tagValue ) ;
463
- Debug . Log ( ( tagValue == null ) + " " + ( null == tagValue ) ) ;
464
- Debug . Log ( "" ) ;
465
- if ( null == tagValue )
463
+ if ( null == tagValues [ i ] )
466
464
{
467
465
// Tags without value, such as bordered in table, or html in doctype
468
466
tagList += " " + tagNames [ i ] ;
@@ -477,17 +475,23 @@ private string Serialize(object[] data, string padding)
477
475
{
478
476
if ( nodeValue . Trim ( ) . Length == 0 )
479
477
{
480
- if ( nodeName == "?xml" )
481
- {
482
- output += $ "<{ nodeName } { tagList } ?>"; // ?xml has an extra ? at the end
483
- }
484
- else if ( nodeName . ToUpper ( ) == "!DOCTYPE" )
485
- {
486
- output += $ "<{ nodeName } { tagList } >"; // doc types are self closing without the usual slash
487
- }
488
- else
478
+ var nodeNameLow = nodeName . ToLower ( ) ;
479
+ switch ( nodeNameLow )
489
480
{
490
- output += $ "<{ nodeName } { tagList } />";
481
+ // ?xml has an extra ? at the end
482
+ case "?xml" :
483
+ output += $ "<{ nodeName } { tagList } ?>";
484
+ break ;
485
+ // doc types are self closing without the usual slash
486
+ case "!doctype" :
487
+ output += $ "<{ nodeName } { tagList } >";
488
+ break ;
489
+ case "!--" :
490
+ output += $ "<{ nodeName } { tagList } -->";
491
+ break ;
492
+ default :
493
+ output += $ "<{ nodeName } { tagList } />";
494
+ break ;
491
495
}
492
496
}
493
497
else
0 commit comments