从c#中的xml文件中获取包含行号的文本

时间:2016-03-30 11:00:27

标签: c# xml

请告诉我如何从xml文件中获取行号和文本?

例如......

var varLines = xmldocument.ToString().Split(new[] { Environment.NewLine }, StringSplitOptions.None);

在这里,我获得了行号但是如何根据行号获取文本

1.<p>This article contends that a new concept of education
2.</p>
2.<contrib-group>
3.<contrib>Organization, Peabody College of Vanderbil University, 230 Appleton Place,</contrib>
4.@</contrib-group>
5.<day></day>
6.<fpage>3</fpage>

我想拥有如下所示的ouptut:

1.<p>This article contends that a new concept of education
3.<contrib>Organization, Peabody College of Vanderbil University, 230 Appleton Place,</contrib>
4.@</contrib-group>
6.<fpage>3</fpage>

请告诉我如何获得

2 个答案:

答案 0 :(得分:0)

如果我理解你的问题,我不知道。
首先,xml不适用于行号,但具有元素/属性和内容。要获取特定元素,您可以使用XmlReader并转到您喜欢的每个元素来读取它的内容或名称。
见这里:https://msdn.microsoft.com/en-us/library/aa720458%28v=vs.71%29.aspx

答案 1 :(得分:0)

试试这个:

首先按如下方式拆分文字:

string[] lines = xmldocument.ToString().Split(new[] { Environment.NewLine }, StringSplitOptions.None);

然后你需要提取内容。

List<string> values = new List<string>(); //Here we save the Values according to your line numbers

注意:列表将从索引0开始,而行开始于1 =&gt;提取时+1!

Regex regex = new Regex(@"<(.*)?>(.*?)</(.*?)");
Match match = regex.Match(line);
values.Add(match.Groups[1].Value);
//Do this inside a foreach-loop for each line.

Output:
values[0]: This article contends that a new concept of education