首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何通过行号从XElement中获取XDocument

如何通过行号从XElement中获取XDocument
EN

Stack Overflow用户
提问于 2016-04-04 14:07:01
回答 2查看 998关注 0票数 2

在C#中,是否可以通过给出行号来获得XElement of XDocument?

我有任何测试XML,如:

代码语言:javascript
复制
<Student>
  <Name>Josphine</Name>
</Student>
<Student>
  <Name>Hendrick</Name>
</Student>

我想把任何像5.5这样的整数作为参数来给我元素<Name>Hendrick</Name>,这在任何方面都可能吗?或者,我是否需要通过读取器解析整个XDocument并检查每个循环的行号。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-04-04 14:26:14

您可以将文件读取到字符串数组

代码语言:javascript
复制
string[] lines = File.ReadAllLines("path/to/file");

然后像lines[4]那样得到你的线路。

或者,您最好看看XPath,因为您的XML文档可能会发生变化。

看看这些实例和教程:XPath实例选择节点

票数 2
EN

Stack Overflow用户

发布于 2016-04-06 13:52:37

另外,如果您的XML格式良好,并且希望只使用XLinq完成工作,那么下面的代码可能会对您有所帮助:

代码语言:javascript
复制
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            XDocument doc = XDocument.Parse(@"<Students>
                                                  <Student>
                                                    <Name>Josphine</Name>
                                                  </Student>
                                                  <Student>
                                                    <Name>Hendrick</Name>
                                                  </Student>
                                              </Students>", LoadOptions.SetLineInfo);

            IEnumerable<XElement> descendants = doc.Descendants();

            foreach (XElement ele in descendants)
            {
                string ln_num = (((IXmlLineInfo)ele).HasLineInfo() ? ((IXmlLineInfo)ele).LineNumber.ToString() : "");
                string ln_pos = (((IXmlLineInfo)ele).HasLineInfo() ? ((IXmlLineInfo)ele).LinePosition.ToString() : "");
                Console.WriteLine(string.Format("{0} ({1}): at line no. {2}, position {3}", ele.Name.ToString(), ele.Value.ToString(), ln_num.ToString(), ln_pos.ToString()));
            }

            Console.ReadKey();
        }
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36404946

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档