Вопрос

Я пытаюсь сделать очень простые операции на .cxml файл. Как вы знаете, это в основном .xml файл. Это пример файла, который я создал для проверки приложения:

<?xml version="1.0" encoding="utf-8"?>
<Collection xmlns:p="http://schemas.microsoft.com/livelabs/pivot/collection/2009" SchemaVersion="1.0" Name="Actresses" xmlns="http://schemas.microsoft.com/collection/metadata/2009">
  <FacetCategories>
    <FacetCategory Name="Nationality" Type="LongString" p:IsFilterVisible="true" p:IsWordWheelVisible="true" p:IsMetaDataVisible="true" />
  </FacetCategories>
<!-- Other entries-->
  <Items ImgBase="Actresses_files\go144bwo.0ao.xml" HrefBase="http://www.imdb.com/name/">    
    <Item Id="2" Img="#2" Name="Anna Karina" Href="nm0439344/">
      <Description> She is a nice girl</Description>
      <Facets>
        <Facet Name="Nationality">
          <LongString Value="Danish" />
        </Facet>
      </Facets>
    </Item>    
  </Items>
<!-- Other entries-->
</Collection>

Я не могу получить какой -либо функционирующий простой код, как:

XDocument document = XDocument.Parse(e.Result);
foreach (XElement x in document.Descendants("Item"))
{
...
}

Тест на общем xml работает. А cxml Файл правильно загружен в документ.

При просмотре выражения:

Document.descendants («элемент»), результаты

ответ:

Пустое «перечисление не дало никаких результатов» строка »

Любой намек на то, что может быть ошибкой? Я также добавляю быстрый взгляд, чтобы получить потомков аспектов, грани и т. Д., Но в перечислении нет результатов. Это, очевидно, не происходит с общим xml Файл, который я использовал для тестирования. Это проблема, с которой я столкнулся .cxml.

Это было полезно?

Решение

В основном ваш XML определяет пространство имен по умолчанию с xmlns="http://schemas.microsoft.com/collection/metadata/2009" атрибут:

Это означает, что вам нужно полностью квалифицировать запрос своих потомков, например:

XDocument document = XDocument.Parse(e.Result);
foreach (XElement x in document.Descendants("{http://schemas.microsoft.com/collection/metadata/2009}Item"))
{
...
}

Если вы удалите пространство имен по умолчанию из XML, ваш код на самом деле работает как есть, но это не цель упражнения.

Другие советы

См. Проект Metadata.cxml под http://github.com/zoomicon/metadata.cxml SourceCode для анализа файлов CXML на основе LINQ.

Также см. Проект clipflair.metadata на http://github.com/zoomicon/clipflair.metadata Для анализа своих пользовательских аспектов CXML

Кстати, в http://clipflair.codeplex.com может проверить проект clipflair.gallery для того, как создать веб-формы ASP.NET для редактирования фрагментов метаданных (части файлов CXML) и объединить их вместе за один (что вы затем периодически конвертируете в DeepZoom CXML с инструментом Pauthor от http://pauthor.codeplex.com).

Если кто -то заинтересован в том, чтобы сделать гнездование (иерархия) коллекций CXML, см.http://github.com/zoomicon/trafilm.metadataа такжеhttp://github.com/zoomicon/trafilm.gallery

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top