72 lines
1.6 KiB
C#
72 lines
1.6 KiB
C#
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using System.Text.RegularExpressions;
|
|
|
|
namespace Rokojori
|
|
{
|
|
public class XMLAttributeName:XMLElementSelector
|
|
{
|
|
public static readonly XMLAttributeName id = XMLAttributeName.Create( "id" );
|
|
|
|
string _attributeName;
|
|
string _nameSpace;
|
|
|
|
string _fullName;
|
|
|
|
public string fullName
|
|
{
|
|
get
|
|
{
|
|
if ( _fullName != null )
|
|
{
|
|
return _fullName;
|
|
}
|
|
|
|
_fullName = _attributeName;
|
|
|
|
if ( _nameSpace != null )
|
|
{
|
|
_fullName = _nameSpace + ":" + _attributeName;
|
|
}
|
|
|
|
return _fullName;
|
|
}
|
|
}
|
|
|
|
public string selector => "[" + fullName + "]";
|
|
|
|
public static XMLAttributeName Create( string type, string nameSpace = null )
|
|
{
|
|
if ( nameSpace == null && type.Contains( ":" ) )
|
|
{
|
|
nameSpace = type.Substring( 0, type.IndexOf( ":" ) );
|
|
type = type.Substring( type.IndexOf( ":" ) + 1 );
|
|
}
|
|
|
|
var elementNodeType = new XMLAttributeName();
|
|
elementNodeType._attributeName = type;
|
|
elementNodeType._nameSpace = nameSpace;
|
|
|
|
return elementNodeType;
|
|
}
|
|
|
|
public XMLAttributeNode GetAttribute( XMLElementNode elementNode )
|
|
{
|
|
return elementNode.GetAttribute( _attributeName, _nameSpace );
|
|
}
|
|
|
|
public string Get( XMLElementNode elementNode )
|
|
{
|
|
var atttribute = GetAttribute( elementNode );
|
|
return atttribute == null ? null : atttribute.nodeValue;
|
|
}
|
|
|
|
|
|
public bool Selects( XMLElementNode elementNode )
|
|
{
|
|
return elementNode.GetAttribute( _attributeName, _nameSpace ) != null;
|
|
}
|
|
|
|
|
|
}
|
|
} |