Можно ли читать файлы XML, связанные с другим файлом XML, «все за один раз»? - PullRequest
0 голосов
/ 30 ноября 2010

У меня есть XML-файл, хранящийся на сервере, который содержит элементы, некоторые из которых являются ссылками на другие XML-файлы, например

<xml>
<item>value</item>
<data>http://www.example.org/item1.xml</data>
<data>http://www.example.org/item2.xml</data>
</xml>

Где item1 и item2 похожи на это, например:

<item>
  <id>1</id>
  <name>Item One</name>
</item>

Я хочу иметь возможность прочитать основной файл XML (что, конечно, я могу сделать), это делается с помощью асинхронного веб-запроса на загрузку XML - можно ли будет прочитать файлы XML, на которые есть ссылки в файле XMLв том же самом «запросе», а не ускорении, в этом случае еще два отдельных веб-клиента запрашивают их загрузку, поскольку они также будут асинхронными и, следовательно, эти данные не будут доступны до тех пор, пока эти запросы не будут выполнены - для привязки к пользовательскому интерфейсу вНапример, XAML.

Это приведет к тому, что основной xml-файл будет загружен и завершен, а затем два xml-файла также будут загружены отдельно.Можно ли читать основные xml и файлы «sub xml» за один раз?

Я могу использовать только асинхронные веб-запросы, поскольку это ограничение платформы Silverlight, и я не могу изменить данные, так как они распространяютсямежду многими XML-файлами для сохранения серверного хранилища и в указанном формате, можно ли загружать и анализировать основные и вспомогательные XML-файлы в одном запросе с использованием поддерживаемых функций LINQ / XElement / Silverlight - я не могу использовать XPath, поскольку это не поддерживается.

Ответы [ 2 ]

0 голосов
/ 30 ноября 2010

Если я вас правильно понял, вы хотите установить relation между общим item.xml и большим количеством subitem.xml файлов. (верно?)

Тогда вам лучше использовать реляционную базу данных, а не пытаться подключать XML-файлы. Или соберите все в один файл, пока он не станет большим. Все остальное - пустая трата вашего времени. :)

0 голосов
/ 30 ноября 2010

Нет, если только выборка на стороне сервера не выполняется ASP.NET или чем-то «активным».Иными словами, если вы извлекаете XML как статический файл, используя HTTP, то, конечно, ничего не будет работать, кроме того, что вы уже знаете - проанализируйте XML при получении, а затем выполните еще два запроса.

Если выСлужа приложению Silverlight с сервера, поддерживающего ASP.NET, вы всегда можете создать небольшой aspx (еще лучше ashx), который будет извлекать все файлы XML, объединять их и отвечать только одним XML.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...