не работает ни System.Xml.XPath ни System.Xml.Linq (елементы не находит)
<?xml version="1.0"?>
<root xmlns="urn:schemas-upnp-org:device-1-0" xmlns:microsoft="urn:schemas-microsoft-com:WMPDMR-1-0">
<specVersion>
<major>1</major>
<minor>0</minor>
</specVersion>
<device>
<deviceType>urn:schemas-upnp-org:device:MediaRenderer:1</deviceType>
<friendlyName>?????????????????????????? (VVVA-106 : Windows Media Player)</friendlyName>
<modelNumber>12</modelNumber>
<modelName>Windows Media Player</modelName>
<modelDescription>Windows Media Player Renderer</modelDescription>
<manufacturer>Microsoft Corporation</manufacturer>
<manufacturerURL>https://www.microsoft.com</manufacturerURL>
<modelURL>https://go.microsoft.com/fwlink/?LinkId=105927</modelURL>
<serialNumber>{A5E280C7-32C5-4980-9E02-F486600FAAE8}</serialNumber>
<UDN>uuid:1e0f97cf-4dda-4dea-b669-c9fe9d002536</UDN>
<dlna:X_DLNADOC xmlns:dlna="urn:schemas-dlna-org:device-1-0">DMR-1.50</dlna:X_DLNADOC>
<microsoft:magicPacketSendSupported>1</microsoft:magicPacketSendSupported>
<iconList>
<icon>
<mimetype>image/png</mimetype>
<width>48</width>
<height>48</height>
<depth>24</depth>
<url>/upnphost/udhisapi.dll?content=uuid:47cb2695-de68-4ab9-b6bd-c8a8a1f6ffe7</url>
</icon>
<icon>
<mimetype>image/png</mimetype>
<width>120</width>
<height>120</height>
<depth>24</depth>
<url>/upnphost/udhisapi.dll?content=uuid:9ea2cb39-0c99-4020-9f6d-6363bba4a187</url>
</icon>
<icon>
<mimetype>image/jpeg</mimetype>
<width>48</width>
<height>48</height>
<depth>24</depth>
<url>/upnphost/udhisapi.dll?content=uuid:7c024ca6-ab04-42a2-9427-a5bab169b1f5</url>
</icon>
<icon>
<mimetype>image/jpeg</mimetype>
<width>120</width>
<height>120</height>
<depth>24</depth>
<url>/upnphost/udhisapi.dll?content=uuid:be3adb6c-644d-4ccc-b93e-f64f4c6683d6</url>
</icon>
</iconList>
<serviceList>
<service>
<serviceType>urn:schemas-upnp-org:service:RenderingControl:1</serviceType>
<serviceId>urn:upnp-org:serviceId:RenderingControl</serviceId>
<controlURL>/upnphost/udhisapi.dll?control=uuid:1e0f97cf-4dda-4dea-b669-c9fe9d002536+urn:upnp-org:serviceId:RenderingControl</controlURL>
<eventSubURL>/upnphost/udhisapi.dll?event=uuid:1e0f97cf-4dda-4dea-b669-c9fe9d002536+urn:upnp-org:serviceId:RenderingControl</eventSubURL>
<SCPDURL>/upnphost/udhisapi.dll?content=uuid:dd87d5a3-3199-436a-aa9f-32de62dc8174</SCPDURL>
</service>
<service>
<serviceType>urn:schemas-upnp-org:service:AVTransport:1</serviceType>
<serviceId>urn:upnp-org:serviceId:AVTransport</serviceId>
<controlURL>/upnphost/udhisapi.dll?control=uuid:1e0f97cf-4dda-4dea-b669-c9fe9d002536+urn:upnp-org:serviceId:AVTransport</controlURL>
<eventSubURL>/upnphost/udhisapi.dll?event=uuid:1e0f97cf-4dda-4dea-b669-c9fe9d002536+urn:upnp-org:serviceId:AVTransport</eventSubURL>
<SCPDURL>/upnphost/udhisapi.dll?content=uuid:9cb31b41-5ded-4e41-bd6f-badbc7e0bf61</SCPDURL>
</service>
<service>
<serviceType>urn:schemas-upnp-org:service:ConnectionManager:1</serviceType>
<serviceId>urn:upnp-org:serviceId:ConnectionManager</serviceId>
<controlURL>/upnphost/udhisapi.dll?control=uuid:1e0f97cf-4dda-4dea-b669-c9fe9d002536+urn:upnp-org:serviceId:ConnectionManager</controlURL>
<eventSubURL>/upnphost/udhisapi.dll?event=uuid:1e0f97cf-4dda-4dea-b669-c9fe9d002536+urn:upnp-org:serviceId:ConnectionManager</eventSubURL>
<SCPDURL>/upnphost/udhisapi.dll?content=uuid:d037d01f-7197-4b97-b437-0a6c9b547a2e</SCPDURL>
</service>
</serviceList>
</device>
</root>
WebRequest wr=WebRequest.Create(list_serv[i].Location_destUrl);
Stream XmlData=wr.GetResponse().GetResponseStream();//xml в ASCII ПРИВЕДЁН ВЫШЕ
XDocument doc = XDocument.Load(XmlData);
XElement nodeRoot = doc.Element("device");// всегда возвращает null чтобы не подставил вместо "device"
упрастил
XDocument doc = XDocument.Load(list_serv[i].Location_destUrl);
XElement nodeRoot = doc.Element("root");// null
столько же (но xml загружается нормально как и в первом случае)
MemoryStream m= new MemoryStream();
String s="<?xml version=\"1.0\"?>\n<root>\n<dev></dev>\n</root>";
//m.Write(UTF8Encoding.UTF8.GetBytes(s), 0, UTF8Encoding.UTF8.GetBytes(s).Length);//работает
m.Write(UTF8Encoding.UTF8.GetBytes(s), 0, UTF8Encoding.ASCII.GetBytes(s).Length);//работает
m.Seek(0, SeekOrigin.Begin);
XDocument d = XDocument.Load(m);//работает
//XDocument d = XDocument.Load("http://192.168.5.7:2869/upnphost/udhisapi.dll?content=uuid:1e0f97cf-4dda-4dea-b669-c9fe9d002536");//не работает !!!
XElement n = d.Element("root").Element("dev");
проблема в этой приписке
xmlns=\"
urn:schemas-upnp-org:device-1-0\" xmlns:microsoft=\"
urn:schemas-microsoft-com:WMPDMR-1-0\"
а что делать если её не знаешь?
Здравствуйте, vvv848165@ya.ru, Вы писали:
VYR>проблема в этой приписке
VYR>xmlns=\"urn:schemas-upnp-org:device-1-0\" xmlns:microsoft=\"urn:schemas-microsoft-com:WMPDMR-1-0\"
VYR>а что делать если её не знаешь?
Ты правильно понял, неймспейсы надо указывать при поиске. Считай что это часть имени элемента или атрибута, надо знать.
Но если очень хочется то ответ есть тут
https://stackoverflow.com/questions/4313520/is-it-possible-to-ignore-namespaces-in-c-sharp-when-using-xpath
Здравствуйте, vvv848165@ya.ru, Вы писали:
VYR>проблема в этой приписке
VYR>xmlns=\"urn:schemas-upnp-org:device-1-0\" xmlns:microsoft=\"urn:schemas-microsoft-com:WMPDMR-1-0\"
Это не приииска, а неймспейс.
XDocument doc = XDocument.Load(list_serv[i].Location_destUrl);
XNamespace ns = "urn:schemas-upnp-org:device-1-0";
XElement nodeRoot = doc.Element(ns + "root");