IXmlLineInfo インターフェイス
クラスが行情報および位置情報を返せるようにするインターフェイスを提供します。
この型のすべてのメンバの一覧については、IXmlLineInfo メンバ を参照してください。
Public Interface IXmlLineInfo
[C#]
public interface IXmlLineInfo
[C++]
public __gc __interface IXmlLineInfo
[JScript]
public interface IXmlLineInfo
IXmlLineInfo を実装するクラス
クラス | 説明 |
---|---|
XmlTextReader | XML データへの高速で非キャッシュの前方向アクセスを提供するリーダーを表します。 |
XmlValidatingReader | DTD、XML-Data Reduced (XDR) スキーマ、および XML スキーマ定義言語 (XSD) スキーマ検証を提供するリーダーを表します。 |
使用例
XML フラグメントを解析する例を次に示します。各ノードが、深さ、行番号、行の位置も含めて表示されます。
Imports System
Imports System.IO
Imports System.Xml
Imports Microsoft.VisualBasic
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
[C#]
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();
}
}
[C++]
#using <mscorlib.dll>
#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 =
S"<book>\n"
S"<misc>\n"
S"<style>paperback</style>\n"
S"<pages>240</pages>\n"
S"</misc>\n"
S"</book>\n";
// Create the XmlNamespaceManager.
XmlNamespaceManager* nsmgr = new XmlNamespaceManager(new NameTable());
// Create the XmlParserContext.
XmlParserContext* context = new XmlParserContext(0, nsmgr, 0, XmlSpace::None);
// Create the reader.
XmlValidatingReader* reader = new 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(S" {0} {1}, {2} ", __box(reader -> Depth), __box(lineInfo -> LineNumber), __box(lineInfo -> LinePosition) );
Console::WriteLine(S"< {0}>", reader -> Name);
break;
case XmlNodeType::Text:
Console::Write(S" {0} {1}, {2} ", __box(reader -> Depth), __box(lineInfo -> LineNumber), __box(lineInfo -> LinePosition) );
Console::WriteLine(S" {0}", reader -> Value);
break;
case XmlNodeType::EndElement:
Console::Write(S" {0} {1}, {2} ", __box(reader -> Depth), __box(lineInfo -> LineNumber), __box(lineInfo -> LinePosition) );
Console::WriteLine(S"</ {0}>", reader -> Name);
break;
}
}
}
// Close the reader.
reader -> Close();
}
[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン をクリックします。
必要条件
名前空間: System.Xml
プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET
アセンブリ: System.Xml (System.Xml.dll 内)