XObject.IXmlLineInfo.HasLineInfo Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Ruft einen Wert ab, der angibt, ob dieses XObject Zeileninformationen aufweist.
virtual bool System.Xml.IXmlLineInfo.HasLineInfo() = System::Xml::IXmlLineInfo::HasLineInfo;
bool IXmlLineInfo.HasLineInfo ();
abstract member System.Xml.IXmlLineInfo.HasLineInfo : unit -> bool
override this.System.Xml.IXmlLineInfo.HasLineInfo : unit -> bool
Function HasLineInfo () As Boolean Implements IXmlLineInfo.HasLineInfo
Gibt zurück
true
, wenn das XObject über Zeileninformationen verfügt, andernfalls false
.
Implementiert
Beispiele
In diesem Beispiel wird eine kleine XML-Struktur aus einer Datei geladen, indem Sie die Optionen festlegen, um Basis-URI festzulegen und Zeileninformationen beizubehalten. Anschließend wird ein weiteres Element hinzugefügt, das keine Zeileninformationen enthält. Anschließend werden die Zeileninformationen für jedes Element in der Struktur gedruckt.
string markup = @"<Root>
<Child1 />
<Child2 />
<Child4 />
</Root>";
File.WriteAllText("Test.xml", markup);
XElement po = XElement.Load("Test.xml",
LoadOptions.SetBaseUri | LoadOptions.SetLineInfo);
// add a node to the tree.
// the newly added node will not have line information.
po.Element("Child2").AddAfterSelf(new XElement("Child3"));
string[] splitUri = po.BaseUri.Split('/');
Console.WriteLine("BaseUri: {0}", splitUri[splitUri.Length - 1]);
Console.WriteLine();
Console.WriteLine("{0}{1}{2}",
"Element Name".PadRight(20),
"Line".PadRight(5),
"Position");
Console.WriteLine("{0}{1}{2}",
"------------".PadRight(20),
"----".PadRight(5),
"--------");
foreach (XElement e in po.DescendantsAndSelf())
Console.WriteLine("{0}{1}{2}",
("".PadRight(e.Ancestors().Count() * 2) + e.Name).PadRight(20),
((IXmlLineInfo)e).HasLineInfo() ?
((IXmlLineInfo)e).LineNumber.ToString().PadRight(5) :
"",
((IXmlLineInfo)e).HasLineInfo() ?
((IXmlLineInfo)e).LinePosition.ToString() :
"No Line Information");
Dim markup As String = _
"<Root>" & Environment.NewLine & _
" <Child1 />" & Environment.NewLine & _
" <Child2 />" & Environment.NewLine & _
" <Child4 />" & Environment.NewLine & _
"</Root>"
File.WriteAllText("Test.xml", markup)
Dim po As XElement = XElement.Load("Test.xml", LoadOptions.SetBaseUri Or LoadOptions.SetLineInfo)
' add a node to the tree.
' the newly added node will not have line information.
po.Element("Child2").AddAfterSelf(New XElement("Child3"))
Dim splitUri() As String = po.BaseUri.Split("/"c)
Console.WriteLine("BaseUri: {0}", splitUri(splitUri.Length - 1))
Console.WriteLine()
Console.WriteLine("{0}{1}{2}", _
"Element Name".PadRight(20), _
"Line".PadRight(5), _
"Position")
Console.WriteLine("{0}{1}{2}", _
"------------".PadRight(20), _
"----".PadRight(5), _
"--------")
For Each e As XElement In po.DescendantsAndSelf()
Console.WriteLine("{0}{1}{2}", _
("".PadRight(e.Ancestors().Count() * 2) & e.Name.ToString).PadRight(20), _
IIf(DirectCast(e, IXmlLineInfo).HasLineInfo(), _
DirectCast(e, IXmlLineInfo).LineNumber.ToString().PadRight(5), _
""), _
IIf(DirectCast(e, IXmlLineInfo).HasLineInfo(), _
DirectCast(e, IXmlLineInfo).LinePosition.ToString(), _
"No Line Information"))
Next
Dieses Beispiel erzeugt die folgende Ausgabe:
BaseUri: Test.xml
Element Name Line Position
------------ ---- --------
Root 1 2
Child1 2 6
Child2 3 6
Child3 No Line Information
Child4 4 6
Hinweise
Sie können diese Methode aufrufen, um zu bestimmen, ob die XObject gültigen Zeileninformationen enthalten.
Diese Methode ist eine explizite Schnittstellenelementimplementierung einer Methode in der IXmlLineInfo Schnittstelle, damit diese Methode aufgerufen werden kann, ist es erforderlich, in IXmlLineInfo.