如何查找包含@、<;等特殊字符的标记和行号>&;,*,$,#在xml文件的文本中使用c#

如何查找包含@、<;等特殊字符的标记和行号>&;,*,$,#在xml文件的文本中使用c#,c#,xml,C#,Xml,我有一个xml文件,内容如下 <Root> <Test> EffectiveHealthCare@ahrq.hhs.gov </Test> </Root> <Parent> <Test> Welcome</Test> </Parent> EffectiveHealthCare@ahrq.hhs.gov 欢迎 当文件中包含特殊字符时,您知道如何获取标记和行号吗 我的输出看起来像 标记

我有一个xml文件,内容如下

<Root>
   <Test> EffectiveHealthCare@ahrq.hhs.gov </Test>
</Root>
<Parent>
   <Test> Welcome</Test>
</Parent>

EffectiveHealthCare@ahrq.hhs.gov 
欢迎
当文件中包含特殊字符时,您知道如何获取标记和行号吗

我的输出看起来像

标记
EffectiveHealthCare@ahrq.hhs.gov

行号:2

文本
EffectiveHealthCare@ahrq.hhs.gov

请帮帮我

谢谢


Sheena Roy

如果你只想知道行号,你可以写:

var specialChars = new [] {'@','<','>','&','*','$','#'};
var linesWithSpecialChars = new List<int>();
var i = 0;
foreach(var line in File.ReadLines(<yourfilename>))
{
   if(line.indexOfAny(specialChars) > -1)
   {
        linesWithSpecialChars.Add(i);
   }
   i++;
}
var specialChars=new[]{'@'、'''.'和'、'*'、'$'、'#'};
var linesWithSpecialChars=新列表();
var i=0;
foreach(文件.ReadLines()中的var行)
{
如果(行索引(特殊字符)>-1)
{
添加(i)条专用线;
}
i++;
}
例如(如果文档是字符串):


您使用什么来读取XML
File.ReadAllText(…)
System.Xml…
?使用Xdocument加载请使用此信息更新您的问题。也许给我一个你是如何加载和使用文档的代码示例。先生,请给我任何解决方案。到目前为止你尝试了什么?阅读:嗨,我已经通过Xdocument加载了文件,所以请给出另一个解决方案。我试试看……你能告诉我,如果文本中除了标签以外的任何地方出现了特殊字符,如何通知我吗?谢谢,先生,它起作用了……我还想要一个“能得到这行的标签吗?不,请帮助我,先生,请回答我正在努力理解你的问题。”。这就是您想要的:获取特定行上的标记吗?如果您想要获取特定行上的元素,我认为您可以将上面查询的最后部分替换为:
.Root.subjections().Where(node=>(node as IXmlLineInfo)。LineNumber==)
XDocument.Load(new StringReader(@"
<xml>
<Root>
   <Test> AnotherLine </Test>
   <Test> EffectiveHealthCare@ahrq.hhs.gov </Test>
</Root>
<Parent>
   <Test> Welcome</Test>
</Parent>
</xml>"), LoadOptions.SetLineInfo)
.Root
.Elements("Root")
.Elements("Test")
.Where(node => node.Value.IndexOfAny(new [] {'@','<','>','&','*','$','#'}) > -1 )
.Select(node => (node as IXmlLineInfo).LineNumber)
XDocument.Load(new StringReader(@"
<xml>
<Root>
   <Test> AnotherLine </Test>
   <Test> EffectiveHealthCare@ahrq.hhs.gov </Test>
</Root>
<Parent>
   <Test> Welcome</Test>
</Parent>
</xml>"), LoadOptions.SetLineInfo)
.Root
.Descendants()
.Where(node => !node.HasElements)
.Where(node => node.Value.IndexOfAny(new [] {'@','<','>','&','*','$','#'}) > -1 )
.Select(node => (node as IXmlLineInfo).LineNumber)