Neuron®
The Neuron® is the basis for the creation of open and secure federated networks for smart societies.
Loading...
Searching...
No Matches
XmlTokenizer.cs
1using System;
2using System.Collections.Generic;
3using System.Reflection;
4using System.Text;
5using System.Threading.Tasks;
6using System.Xml;
8
10{
14 public class XmlTokenizer : ITokenizer
15 {
19 public XmlTokenizer()
20 {
21 }
22
28 public Grade Supports(Type Type)
29 {
30 if (typeInfo.IsAssignableFrom(Type))
31 return Grade.Ok;
32 else
33 return Grade.NotAtAll;
34 }
35
36 private static readonly TypeInfo typeInfo = typeof(XmlNode).GetTypeInfo();
37
43 public Task Tokenize(object Value, TokenizationProcess Process)
44 {
45 if (Value is XmlNode N)
46 Tokenize(N, Process);
47
48 return Task.CompletedTask;
49 }
50
56 public static void Tokenize(XmlNode Xml, TokenizationProcess Process)
57 {
58 StringBuilder sb = new StringBuilder();
59
60 GetText(Xml, sb);
61
62 StringTokenizer.Tokenize(sb.ToString(), Process);
63 }
64
65 private static void GetText(XmlNode N, StringBuilder Text)
66 {
67 if (N is XmlElement E)
68 {
69 foreach (XmlAttribute Attr in E.Attributes)
70 {
71 Text.Append(' ');
72 Text.Append(Attr.Value);
73 }
74 }
75 else if (N is XmlText T)
76 {
77 Text.Append(' ');
78 Text.Append(T.InnerText);
79 }
80 else if (N is XmlCDataSection C)
81 {
82 Text.Append(' ');
83 Text.Append(C.InnerText);
84 }
85
86 if (N.HasChildNodes)
87 {
88 foreach (XmlNode N2 in N.ChildNodes)
89 GetText(N2, Text);
90 }
91 }
92 }
93}
Task Tokenize(object Value, TokenizationProcess Process)
Tokenizes an object.
Contains information about a tokenization process.
Tokenizes an XML Document or XML Fragment.
Definition: XmlTokenizer.cs:15
static void Tokenize(XmlNode Xml, TokenizationProcess Process)
Tokenizes an XML Document or XML Fragment.
Definition: XmlTokenizer.cs:56
Task Tokenize(object Value, TokenizationProcess Process)
Tokenizes an object.
Definition: XmlTokenizer.cs:43
Grade Supports(Type Type)
How well the tokenizer can tokenize objects of type Type .
Definition: XmlTokenizer.cs:28
XmlTokenizer()
Tokenizes an XML Document or XML Fragment.
Definition: XmlTokenizer.cs:19
Interface for full-text-search tokenizers
Definition: ITokenizer.cs:12
Grade
Grade enumeration
Definition: Grade.cs:7