Использование LINQ to XML.Получение данных из файла XML
У меня есть файл XML, который выглядит следующим образом:
<?xml version="1.0" encoding="utf-8"?>
<TileMap xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Title>title</Title>
<Abstract>Some clever text about this.</Abstract>
<SRS>OSGEO:41001</SRS>
<Profile>global-mercator or something</Profile>
</TileMap>
я могу извлечь <Title>
от этого без каких-либо проблем, используя этот маленький кусочек кода:
string xmlString = AppDomain.CurrentDomain.BaseDirectory + @"Capabilities\" + name + ".xml";
string xmlText = File.ReadAllText(xmlString);
byte[] buffer = Encoding.UTF8.GetBytes(xmlText);
XElement element = XElement.Load(xmlString);
IEnumerable<XElement> title =
from el in element.Elements("Title")
select el;
foreach (XElement el in title)
{
var elementValue = el.Value;
}
Однако, это ISN 't очень гибко, потому что, скажем, у меня есть XML-файл, который выглядит следующим образом:
<?xml version="1.0" encoding="utf-8"?>
<RootObject xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Services>
<TileMapService>
<Title>title</Title>
<href>http://localhost/root</href>
</TileMapService>
</Services>
</RootObject>
Не может найти <Title>
, но он находит <Services>
(предположим), но так как он не называется «Название», он просто игнорирует его. Я не очень силен в работе с XML. Как я могу сделать метод, который просматривает XML и выбирает мне «Title», или же вы его реализуете?
код, который вы не отвечал бы на самом деле компиляции, так как вы объявляя 'element' локальную переменную дважды ... –
Хах, даже не заметил, что , Мое имя переменной было глупо, поэтому я изменил его в редакторе SO, прежде чем опубликовать его. Я отредактировал его. – Khaine775