WedX - журнал о программировании и компьютерных науках

При привязке элемента управления Treeview к xmldatasource возникает исключение: отсутствует корневой элемент.

aspx-файл:

  <div>
    <asp:TreeView ID="TreeView1" runat="server" DataSourceID="XmlDataSource1" 
        ShowCheckBoxes="All" ShowLines="True">
    </asp:TreeView>
    <asp:XmlDataSource ID="XmlDataSource1" runat="server" DataFile="~/Details.xml">
    </asp:XmlDataSource>
  </div>

Детали.xml:

 <?xml version="1.0" encoding="utf-8" standalone="yes"?>
 <Root>
 <Collection Name="Server 1">
  <Box>MB1</Box>
  <Box>MB2</Box>
  <Box>MB3</Box>
  <Box>MB4</Box>
  <Box>MB5</Box>
  </Collection>
 </Root>

Трассировки стека:

 [XmlException: Root element is missing.]
 System.Xml.XmlTextReaderImpl.Throw(Exception e) +76
 System.Xml.XmlTextReaderImpl.ThrowWithoutLineInfo(String res) +61
 System.Xml.XmlTextReaderImpl.ParseDocumentContent() +3981048
 System.Xml.XmlTextReaderImpl.Read() +151
 System.Xml.XmlLoader.LoadNode(Boolean skipOverWhitespace) +58
 System.Xml.XmlLoader.LoadDocSequence(XmlDocument parentDoc) +20
 System.Xml.XmlLoader.Load(XmlDocument doc, XmlReader reader, Boolean preserveWhitespace) +129
 System.Xml.XmlDocument.Load(XmlReader reader) +108
 System.Web.UI.WebControls.XmlDataSource.PopulateXmlDocument(XmlDocument document, CacheDependency& dataCacheDependency, CacheDependency& transformCacheDependency) +306
 System.Web.UI.WebControls.XmlDataSource.GetXmlDocument() +153
 System.Web.UI.WebControls.XmlHierarchicalDataSourceView.Select() +17
 System.Web.UI.WebControls.TreeView.DataBindNode(TreeNode node) +125
 System.Web.UI.WebControls.TreeView.PerformDataBinding() +120
 System.Web.UI.WebControls.HierarchicalDataBoundControl.PerformSelect() +85
 System.Web.UI.WebControls.BaseDataBoundControl.DataBind() +73
 System.Web.UI.WebControls.TreeView.DataBind() +4
 System.Web.UI.WebControls.BaseDataBoundControl.EnsureDataBound() +82
 System.Web.UI.WebControls.BaseDataBoundControl.OnPreRender(EventArgs e) +22
 System.Web.UI.WebControls.TreeView.OnPreRender(EventArgs e) +36
 System.Web.UI.Control.PreRenderRecursiveInternal() +80
 System.Web.UI.Control.PreRenderRecursiveInternal() +171
 System.Web.UI.Control.PreRenderRecursiveInternal() +171
 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +842

При загрузке страницы возникает исключение, я попытался проверить файл xml и его действительность в соответствии с валидатором w3cshools. Какие вещи вызывают это исключение. Поправьте меня, где я ошибся. Спасибо!


Ответы:


1

Попробуйте один раз изменить код дерева, как показано ниже.

<asp:TreeView ID="TreeView1" runat="server" DataSourceID="XmlDataSource1">
<DataBindings>  
 <asp:TreeNodeBinding DataMember="Collection" TextField="Name" />  
  <asp:TreeNodeBinding DataMember="Box" TextField="Name" />  

 </DataBindings> 
</asp:TreeView>

XML

<?xml version="1.0" encoding="utf-8" ?>  
 <Collection Name="Server 1">
  <Box Name="MB1"></Box>
  <Box Name="MB2"></Box>
  <Box Name="MB3"></Box>
  <Box Name="MB4"></Box>
 </Collection>

Пример TreeView

21.11.2012
  • Спасибо за Ваш ответ. Но все равно такое же исключение thorwn. 21.11.2012
  • Вы можете получить доступ к файлу XML без каких-либо проблем? 21.11.2012
  • Я обновил свой ответ, однажды попробовав с моим древовидным кодом и образцом XML-файла. Проверьте также этот ответ: отсутствует корневой элемент/ 21.11.2012

  • 2
    <div>
       <asp:XmlDataSource ID="XmlDataSource1" runat="server" DataFile="~/Details.xml">
       </asp:XmlDataSource>
       <asp:TreeView ID="TreeView1" runat="server" DataSourceID="XmlDataSource1" 
        ShowCheckBoxes="All" ShowLines="True">
          <DataBindings>  
              <asp:TreeNodeBinding DataMember="Collection" TextField="Name" />  
              <asp:TreeNodeBinding DataMember="Box" TextField="Name" />  
         </DataBindings> 
      </asp:TreeView>
    </div>
    

    Я только что изменил место xmldatasource, и теперь он работает.

    21.11.2012
    Новые материалы

    Как проанализировать работу вашего классификатора?
    Не всегда просто знать, какие показатели использовать С развитием глубокого обучения все больше и больше людей учатся обучать свой первый классификатор. Но как только вы закончите..

    Работа с цепями Маркова, часть 4 (Машинное обучение)
    Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

    Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
    Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..

    Использование машинного обучения и Python для классификации 1000 сезонов новичков MLB Hitter
    Чему может научиться машина, глядя на сезоны новичков 1000 игроков MLB? Это то, что исследует это приложение. В этом процессе мы будем использовать неконтролируемое обучение, чтобы..

    Учебные заметки: создание моего первого пакета Node.js
    Это мои обучающие заметки, когда я научился создавать свой самый первый пакет Node.js, распространяемый через npm. Оглавление Глоссарий I. Новый пакет 1.1 советы по инициализации..

    Забудьте о Matplotlib: улучшите визуализацию данных с помощью умопомрачительных функций Seaborn!
    Примечание. Эта запись в блоге предполагает базовое знакомство с Python и концепциями анализа данных. Привет, энтузиасты данных! Добро пожаловать в мой блог, где я расскажу о невероятных..

    ИИ в аэрокосмической отрасли
    Каждый полет – это шаг вперед к великой мечте. Чтобы это происходило в их собственном темпе, необходима команда астронавтов для погони за космосом и команда технического обслуживания..


    Для любых предложений по сайту: [email protected]