Skip to content

Reading

XmlTvSharp provides two reading styles:

  • Complete document reads with XmlTvReader.ReadAsync.
  • Forward-only reads with XmlTvReader.

Complete Document

Use the complete-document API when you want channels and programmes collected into one model:

csharp
XmlTvDocument document = await XmlTvReader.ReadAsync("guide.xml");

The returned document contains root metadata, channels, and programmes:

csharp
var metadata = document.Metadata;
var channels = document.Channels;
var programmes = document.Programmes;

Forward-Only Reading

Use ReadMetadataAsync and ReadElementAsync when you want to process top-level elements one at a time:

csharp
using var reader = new XmlTvReader("guide.xml");

XmlTvMetadata metadata = await reader.ReadMetadataAsync();

while (await reader.ReadElementAsync() is { } element)
{
    switch (element)
    {
        case XmlTvChannel channel:
            Console.WriteLine(channel.Id);
            break;

        case XmlTvProgramme programme:
            Console.WriteLine(programme.ChannelId);
            break;
    }
}

ReadElementAsync returns supported top-level child elements. Root <tv> metadata is read through ReadMetadataAsync.

Filtering

Use a read filter when you want to skip unsupported branches before models are materialized. See Filtering While Reading.

Options

Use XmlTvReaderOptions for compatibility profiles and unknown-content handling. See Reader Options.

Released under the MIT License.