OK - нашел ответ, который искал.
это класс XmlConvert.
var el_date = (XmlElement)el_root.SelectSingleNode("./DateVal");
//WANTED: el_date.Value = 2010-02-18 01:02:03 (as a DateTime Object)
var val_date = XmlConvert.ToDateTime(el_date.InnerText);
//ACTUAL: el_date.InnerText="2010-02-18T01:02:03"
var el_duration = (XmlElement)el_root.SelectSingleNode("./TimeVal");
//WANTED: el_date.Value = 10 hours, 5 minutes, 3 seconds (as a TimeSpan Object)
var val_duration = XmlConvert.ToTimeSpan(el_duration.InnerText);
//ACTUAL: el_date.InnerText="PT10H5M3S"
Ответ Марка был верным с точки зрения чтения в целом строго типизированном классе, но в этом случае я хотел прочитать только один строго типизированный элемент / узел.
Попробуйте следующее:
string[] myDelims = new string[] { "<beginning of record>" };
split = temp_string.Split(myDelims,StringSplitOptions.None);
Выполнение этого через преобразователь кода приводит к следующему:
Dim myDelims As String() = New String() { "<beginning of record>" }
split = temp_string.Split(myDelims, StringSplitOptions.None)
Вам также может потребоваться избежать шевронов, например:
"\< beginning of record \>"
@Matthew Jones 'ответ в VB.NET
Dim delim as String() = New String(0) { "<beginning of record>" }
split = temp_string.Split(delim, StringSplitOptions.None)
Вы можете посмотреть на метод Regex.Split ().
Кажется, он работает
dim s as string = "you have a <funny> thing <funny> going on"
dim a() as string = Regex.Split(s,"<funny>")
for each b as string in a
Response.Write( b & "<br>")
next
Вы можете написать себе метод расширения, чтобы упростить его (на основе ответа Мэтью Джонса )
(думаю, я должен показать пример как ну ...)
Dim results = "hay needle hay needle hay".Split("needle")
' results(0) = "hay "
' results(1) = " hay "
' results(2) = " hay"
... C # ...
public static class Tools
{
public static string[] Split(this string input, params string[] delimiter)
{
return input.Split(delimiter, StringSplitOptions.None);
}
}
... VB.Net ...
Module Tools
<Extension()> _
Public Function Split(ByVal input As String, _
ByVal ParamArray delimiter As String()) As String()
Return input.Split(delimiter, StringSplitOptions.None)
End Function
End Module
похоже, это работает
Dim myString As String = "aaajjbbbjjccc"
Dim mySplit() As Char = "jj".ToCharArray
Dim myResult() As String = myString.Split(mySplit, StringSplitOptions.RemoveEmptyEntries)
Если на самом деле вы разделяете XML, считанный в строку, то не используйте строки VB для сделай эту работу. Используйте XSLT. VB / C # имеет методы для рендеринга XML с помощью XSLT. Это будет намного быстрее и надежнее.
Я так не думаю, для этого нужны только символы. Вы можете сделать некрасивый хакерский прием и сначала заменить все экземпляры строки некоторым символом, который еще не существует в строке, а затем разделить этот символ.
Отредактировано для добавления: я думаю, что Regex.Split может для разделения регулярного выражения, поэтому, если вы создадите простое регулярное выражение, которое представляет собой просто строку, которую вы хотите разделить, это должно сработать.