Ich habe versucht, Text aus einer Textdatei zu extrahieren, wenn sie nicht zwischen einem "<>" sind. Gleichzeitig möchte ich, dass die extrahierten Wörter in einer neuen Zeile gedruckt werden.Wie extrahiere ich Text zwischen "<>"
Das ist die Frage: Write a program that extracts from an XML file the text only (without the tags)
Probe Input: <?xml version="1.0"><student><name>Peter</name><age>21</age><interests count="3"><interest>Games</interest><interest>C#</interest>
gewünschte Ausgabe:
Peter 21 Games C# Java
mein Stromeingang ist wie folgt:
Peter
21
Games
C#
Java
Dazwischen liegen Leerzeilen.
So sieht mein Code im Moment aus. Jede Hilfe wäre willkommen! Und wenn Sie sich wundern, ist dies Selbststudium-Hausaufgaben. Also brauche ich diese Hand nicht. Ich betrüge nicht.
using System;
using System.Collections.Generic;
using System.IO;
using System.Text;
namespace Chapter_15_Question_10
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("This app extracts the words not in tags");
StreamReader reader = new StreamReader(
@"C:\Users\Nate\Documents\Visual Studio 2015\Projects\Chapter 15\Chapter 15 Question 10\Chapter 15 Question 10\TextFile1.txt");
StringBuilder sb = new StringBuilder();
using (reader)
{
string line = reader.ReadToEnd();
bool isOpen = false;
for (int i = 1; i < line.Length; i++)
{
if (line[i-1] == '<')
{
isOpen = true;
}
if (line[i-1] == '>')
{
isOpen = false;
}
if (isOpen)
{
continue;
}
if (!(isOpen) && (line[i] != '<'))
Console.Write(line[i]);
if(line[i] == '<')
Console.WriteLine();
}
}
}
}
}
Sie können eine 'xml deserialization' tun, würde Ihre Leben viel einfacher, sieht aus wie Hausaufgaben, also sollten Sie den Rest selbst tun :) –
Um weiter zu machen, was AD.Net sagte, hier ist ein hilfreicher MSDN Artikel für Sie: [XML Processing Options] (https://msdn.microsoft .com/de-de/library/bb669131 (v = vs.110) .aspx) –
Benötigt die Lösung die manuelle Syntaxanalyse des XML-Codes oder können Sie bereits vorhandene Tools verwenden? – SpaceghostAli