Я пытаюсь использовать Linq для выбора из XML. Вот пример XML:
<?xml version="1.0" encoding="UTF-8"?>
<listingexport xmlns="http://websitexmlfeed.com/webservice/2/listings"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://websitexmlfeed.com/webservice/2/listings ../listings.xsd">
<listing>
<id>00001</id>
<name>Modelname</name>
<type>Typename</type>
</listing>
</listingexport>
Код, который я использую, выглядит следующим образом:
XDocument le = XDocument.Load(@uri);
var listings = (from listing in le.Descendants("listing")
select new listingType
{
Id = listing.Element("id").Value,
Name= listing.Element("name").Value,
Type= listing.Element("type").Value
}).ToList();
Проблема у меня заключается в том, что вызов le.Descendants ("listing") не возвращает никаких результатов из файла XML из-за информации о пространстве имен (я предполагаю проблему, связанную с этим сообщением: XPath ASP.NET 2.0 XmlDataSource не поддерживает пространства имен ). Тем не менее, если я изменю XML-файл, чтобы не было информации о пространстве имен, как показано ниже:
<?xml version="1.0" encoding="UTF-8"?>
<listingexport>
<listing>
<id>00001</id>
<name>Modelname</name>
<type>Typename</type>
</listing>
</listingexport>
это работает. К сожалению, у меня нет доступа для изменения файла XML, поэтому мне нужно решение, которое будет работать. Любая помощь приветствуется.
спасибо,
Джо