1 #Region "Microsoft.VisualBasic::98d9e84c6c3a0521a7e60fd33f51e964, Microsoft.VisualBasic.Core\Text\Xml\Extensions.vb"
2
3     ' Author:
4     
5     '       asuka (amethyst.asuka@gcmodeller.org)
6     '       xie (genetics@smrucc.org)
7     '       xieguigang (xie.guigang@live.com)
8     
9     ' Copyright (c) 2018 GPL3 Licensed
10     
11     
12     ' GNU GENERAL PUBLIC LICENSE (GPL3)
13     
14     
15     ' This program is free software: you can redistribute it and/or modify
16     ' it under the terms of the GNU General Public License as published by
17     ' the Free Software Foundation, either version 3 of the License, or
18     ' (at your option) any later version.
19     
20     ' This program is distributed in the hope that it will be useful,
21     ' but WITHOUT ANY WARRANTY; without even the implied warranty of
22     ' MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
23     ' GNU General Public License for more details.
24     
25     ' You should have received a copy of the GNU General Public License
26     ' along with this program. If not, see <http://www.gnu.org/licenses/>.
27
28
29
30     ' /********************************************************************************/
31
32     ' Summaries:
33
34     '     Module Extensions
35     
36     '         FunctionFormatHTML, StripInvalidCharacters
37     
38     
39     ' /********************************************************************************/
40
41 #End Region
42
43 Imports System.IO
44 Imports System.Runtime.CompilerServices
45 Imports System.Text
46 Imports System.Xml
47
48 Namespace Text.Xml
49
50     Public Module Extensions
51
52         ''' <summary>
53         ''' 使用这个函数删除xml文本字符串之中的无效的字符
54         ''' </summary>
55         ''' <param name="xml$"></param>
56         ''' <returns></returns>
57         <Extension>
58         Public Function StripInvalidCharacters(xml$) As String
59             Dim sb As New StringBuilder(xml)
60
61             Call sb.Replace("&#x8;"".")
62
63             Return sb.ToString
64         End Function
65
66         <Extension>
67         Public Function FormatHTML(html$) As String
68             Dim xml$ = "<?xml version=""1.0""?>" & html
69             Dim doc As New XmlDocument
70             Dim ms As New MemoryStream
71
72             Using writer As New StreamWriter(ms, UTF8WithoutBOM)
73                 Call doc.LoadXml(xml)
74                 Call doc.Save(writer)
75                 Call writer.Flush()
76             End Using
77
78             Dim out$ = UTF8WithoutBOM _
79                 .GetString(ms.ToArray) _
80                 .Trim("?"c)  ' 很奇怪,生成的字符串的开始的位置有一个问号
81
82             Return out
83         End Function
84     End Module
85 End Namespace