С XML, как это:
<esri:DataElement xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:esri="http://www.esri.com/schemas/ArcGIS/10.0" xsi:type="esri:DEFeatureClass">
<CatalogPath>\counties</CatalogPath>
<Name>counties</Name>
…
</esri:DataElement>
Я использовал такие запросы, как:
tableInfo.TableName = (from element in xDoc.Descendants("Name")
select Convert.ToString(element.Value)).FirstOrDefault();
Но если вы определите пространство имен в своем коде, то вы можете получить более конкретный, более быстрый:
XNamespace esri = "http://www.esri.com/schemas/ArcGIS/10.0";
tableInfo.TableName = xDoc.Element(esri + "DataElement").Element("Name").Value;
Вы можете думать о том, чтобы объявить пространство имен как место «esri:» в строках. (Также нельзя использовать двоеточие в запросе). Кроме того, в файле, подобном этому, я обнаружил несколько вхождений тегов, поэтому важно получить правильные (или хотя бы один набор). Раньше я заканчивал с избыточной информацией для полей, что могло бы испортить создание таблицы SQL Server. Теперь я могу определить, какой элемент я хочу связать с корнем документа.