PivotViewer's .cxml
-
27-10-2019 - |
Вопрос
Я пытаюсь сделать очень простые операции на .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