QuickOPC User's Guide and Reference
Reading in OPC XML-DA
View with Navigation Tools
Development Models > Imperative Programming Model > Imperative Programming Model for OPC Data (Classic and UA) > Obtaining Information (OPC Data) > Reading from OPC Classic Items > Reading in OPC XML-DA

In OPC XML-DA, reading or writing is in principle no different from COM-based OPC. You just need to specify the OPC server using its URL instead of the ProgID or CLSID, and obey the rules for identificaton of the items (which are server-dependent). Sometimes, you may need an additional piece of information to identify nodes in OPC XML-DA address space; for more information see Identifying information in OPC XML.

QuickOPC supports OPC XML-DA also on Linux and macOS.
// This example shows how to read 4 items from an OPC XML-DA server at once, and display their values, timestamps 
// and qualities.

using System;
using System.Diagnostics;
using OpcLabs.EasyOpc;
using OpcLabs.EasyOpc.DataAccess;
using OpcLabs.EasyOpc.DataAccess.OperationModel;

namespace DocExamples.DataAccess.Xml
{
    class ReadMultipleItems
    {
        public static void Main1Xml()
        {
            // Instantiate the client object.
            var client = new EasyDAClient();

            DAVtqResult[] vtqResults = client.ReadMultipleItems(
                new ServerDescriptor { UrlString = "http://opcxml.demo-this.com/XmlDaSampleServer/Service.asmx" },
                new DAItemDescriptor[]
                    {
                        "Dynamic/Analog Types/Double", 
                        "Dynamic/Analog Types/Double[]", 
                        "Dynamic/Analog Types/Int", 
                        "SomeUnknownItem"
                    });

            for (int i = 0; i < vtqResults.Length; i++)
            {
                Debug.Assert(vtqResults[i] != null);

                if (!(vtqResults[i].Exception is null))
                {
                    Console.WriteLine($"vtqResults[{i}] *** Failure: {vtqResults[i].ErrorMessageBrief}");
                    continue;
                }
                Console.WriteLine($"vtqResults[{i}].Vtq: {vtqResults[i].Vtq}");
            }
        }
    }
}
QuickOPC supports OPC XML-DA also on Linux and macOS.
See Also

Installed Examples - WindowsForms