在C#中,是否可以通过给出行号来获得XElement of XDocument?
我有任何测试XML,如:
<Student>
<Name>Josphine</Name>
</Student>
<Student>
<Name>Hendrick</Name>
</Student>我想把任何像5.5这样的整数作为参数来给我元素<Name>Hendrick</Name>,这在任何方面都可能吗?或者,我是否需要通过读取器解析整个XDocument并检查每个循环的行号。
发布于 2016-04-04 14:26:14
发布于 2016-04-06 13:52:37
另外,如果您的XML格式良好,并且希望只使用XLinq完成工作,那么下面的代码可能会对您有所帮助:
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();
}
}
}https://stackoverflow.com/questions/36404946
复制相似问题