58 lines
1.1 KiB
C#
58 lines
1.1 KiB
C#
|
using System.Collections;
|
||
|
using System.Collections.Generic;
|
||
|
using System.Text.RegularExpressions;
|
||
|
using Godot;
|
||
|
|
||
|
namespace Rokojori
|
||
|
{
|
||
|
public class XMLQuery
|
||
|
{
|
||
|
public static XMLElementNode SelectElement( XMLNode node, XMLElementSelector selector )
|
||
|
{
|
||
|
var element = XMLWalker.instance.Find( node,
|
||
|
n =>
|
||
|
{
|
||
|
var element = n as XMLElementNode;
|
||
|
|
||
|
if ( element == null )
|
||
|
{
|
||
|
return false;
|
||
|
}
|
||
|
|
||
|
return selector.Selects( element );
|
||
|
},
|
||
|
|
||
|
false
|
||
|
);
|
||
|
|
||
|
return element == null ? null : ( element as XMLElementNode );
|
||
|
}
|
||
|
|
||
|
public static List<XMLElementNode> SelectAllElements( XMLNode node, XMLElementSelector selector )
|
||
|
{
|
||
|
var list = new List<XMLElementNode>();
|
||
|
|
||
|
XMLWalker.instance.Iterate( node,
|
||
|
n =>
|
||
|
{
|
||
|
var element = n as XMLElementNode;
|
||
|
|
||
|
if ( element == null )
|
||
|
{
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
if ( selector.Selects( element ) )
|
||
|
{
|
||
|
list.Add( element );
|
||
|
}
|
||
|
},
|
||
|
|
||
|
false
|
||
|
);
|
||
|
|
||
|
return list;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
}
|