IXmlLineInfo Schnittstelle
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.
Stellt eine Schnittstelle bereit, die einer Klasse die Rückgabe von Zeilen- und Positionsinformationen ermöglicht.
public interface class IXmlLineInfo
public interface IXmlLineInfo
type IXmlLineInfo = interface
Public Interface IXmlLineInfo
- Abgeleitet
Beispiele
Im folgenden Beispiel wird ein XML-Fragment analysiert. Jeder Knoten wird angezeigt, einschließlich tiefe, Liniennummer und Linienposition.
#using <System.Xml.dll>
using namespace System;
using namespace System::IO;
using namespace System::Xml;
int main()
{
// Create the XML fragment to be parsed.
String^ xmlFrag = "<book>\n"
"<misc>\n"
"<style>paperback</style>\n"
"<pages>240</pages>\n"
"</misc>\n"
"</book>\n";
// Create the XmlNamespaceManager.
XmlNamespaceManager^ nsmgr = gcnew XmlNamespaceManager( gcnew NameTable );
// Create the XmlParserContext.
XmlParserContext^ context = gcnew XmlParserContext( nullptr,nsmgr,nullptr,XmlSpace::None );
// Create the reader.
XmlValidatingReader^ reader = gcnew XmlValidatingReader( xmlFrag,XmlNodeType::Element,context );
IXmlLineInfo^ lineInfo = (dynamic_cast<IXmlLineInfo^>(reader));
if ( lineInfo->HasLineInfo() )
{
// Parse the XML and display each node.
while ( reader->Read() )
{
switch ( reader->NodeType )
{
case XmlNodeType::Element:
Console::Write( " {0} {1}, {2} ", reader->Depth, lineInfo->LineNumber, lineInfo->LinePosition );
Console::WriteLine( "< {0}>", reader->Name );
break;
case XmlNodeType::Text:
Console::Write( " {0} {1}, {2} ", reader->Depth, lineInfo->LineNumber, lineInfo->LinePosition );
Console::WriteLine( " {0}", reader->Value );
break;
case XmlNodeType::EndElement:
Console::Write( " {0} {1}, {2} ", reader->Depth, lineInfo->LineNumber, lineInfo->LinePosition );
Console::WriteLine( "</ {0}>", reader->Name );
break;
}
}
}
// Close the reader.
reader->Close();
}
using System;
using System.IO;
using System.Xml;
public class Sample{
public static void Main(){
// Create the XML fragment to be parsed.
string xmlFrag =
@"<book>
<misc>
<style>paperback</style>
<pages>240</pages>
</misc>
</book>
";
// Create the XmlNamespaceManager.
XmlNamespaceManager nsmgr = new XmlNamespaceManager(new NameTable());
// Create the XmlParserContext.
XmlParserContext context = new XmlParserContext(null, nsmgr, null, XmlSpace.None);
// Create the reader.
XmlValidatingReader reader = new XmlValidatingReader(xmlFrag, XmlNodeType.Element, context);
IXmlLineInfo lineInfo = ((IXmlLineInfo)reader);
if (lineInfo.HasLineInfo()){
// Parse the XML and display each node.
while (reader.Read()){
switch (reader.NodeType){
case XmlNodeType.Element:
Console.Write("{0} {1},{2} ", reader.Depth, lineInfo.LineNumber, lineInfo.LinePosition);
Console.WriteLine("<{0}>", reader.Name);
break;
case XmlNodeType.Text:
Console.Write("{0} {1},{2} ", reader.Depth, lineInfo.LineNumber, lineInfo.LinePosition);
Console.WriteLine(" {0}", reader.Value);
break;
case XmlNodeType.EndElement:
Console.Write("{0} {1},{2} ", reader.Depth, lineInfo.LineNumber, lineInfo.LinePosition);
Console.WriteLine("</{0}>", reader.Name);
break;
}
}
}
// Close the reader.
reader.Close();
}
}
Imports System.IO
Imports System.Xml
public class Sample
public shared sub Main()
' Create the XML fragment to be parsed.
Dim xmlFrag as string = "<book>" + Chr(10) & _
" <misc>" + Chr(10) & _
" <style>paperback</style>" + Chr(10) & _
" <pages>240</pages>" + Chr(10) & _
" </misc>" + Chr(10) & _
"</book>"
' Create the XmlNamespaceManager.
Dim nsmgr as XmlNamespaceManager = new XmlNamespaceManager(new NameTable())
' Create the XmlParserContext.
Dim context as XmlParserContext = new XmlParserContext(nothing, nsmgr, nothing, XmlSpace.None)
' Create the reader.
Dim reader as XmlValidatingReader = new XmlValidatingReader(xmlFrag, XmlNodeType.Element, context)
Dim lineInfo as IXmlLineInfo = CType(reader, IXmlLineInfo)
if (lineInfo.HasLineInfo())
' Parse the XML and display each node.
while (reader.Read())
select case reader.NodeType
case XmlNodeType.Element:
Console.Write("{0} {1},{2} ", reader.Depth, lineInfo.LineNumber, lineInfo.LinePosition)
Console.WriteLine("<{0}>", reader.Name)
case XmlNodeType.Text:
Console.Write("{0} {1},{2} ", reader.Depth, lineInfo.LineNumber, lineInfo.LinePosition)
Console.WriteLine(" {0}", reader.Value)
case XmlNodeType.EndElement:
Console.Write("{0} {1},{2} ", reader.Depth, lineInfo.LineNumber, lineInfo.LinePosition)
Console.WriteLine("</{0}>", reader.Name)
end select
end while
end if
' Close the reader.
reader.Close()
end sub
end class
Eigenschaften
LineNumber |
Ruft die aktuelle Zeilennummer ab. |
LinePosition |
Ruft die aktuelle Zeilenposition ab. |
Methoden
HasLineInfo() |
Ruft einen Wert ab, der angibt, ob die Klasse Zeileninformationen zurückgeben kann. |