あなたの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();
}
}
}
あなたがすることによってフェッチしたいと思う理由行番号?要素が再配置された場合(XMLに対して完全に有効)、または空白が削除された場合(XMLに対しても有効)あなたの記載された要求は非常に悪いコード臭があります。代わりにXPathクエリを調べてください。 – willaien
xsd-fileでxml-fileを検証します。このメソッドは、それぞれの行番号でerrormessageを返します。そして、なぜ私が行番号で要素を取得したいのですか。私はそのためにASP.NET MVC Programmを構築しました。そして、私は、ユーザーに正しい要素ではない内容を与えたいと思っています。 –
XMLは区切り文字として新しい行を使用することはできません。したがって、1行にすべてが必要な場合は改行と同じになります – MikeT