Windows Phone with XML file

本文关键字:file XML with Phone Windows | 更新日期: 2023-09-27 18:15:50

我试着从xml文档填充一个"ListPicker"。如果xml只有一个标签"producto",ListPicker将正确显示其他属性。但是如果有多个TAG"producto",则错误是"有多个根元素"。第7行,第2位".

我应该如何写代码显示所有标签" producto "?

XML:

<produto>
<codigo>1</codigo>
<descricao>Janela</descricao>
<valor>100.00</valor>
</produto>
<produto>
<codigo>2</codigo>
<descricao>Porta</descricao>
<valor>120.00</valor>
</produto>
<produto>
<codigo>3</codigo>
<descricao>Alambrado</descricao>
<valor>80.00</valor>
</produto>
代码:

  private void locChoice(object sender, RoutedEventArgs e)
    {    

        IsolatedStorageFile store = IsolatedStorageFile.GetUserStoreForApplication();
        string filePath = "im.xml";
        if (store.FileExists(filePath))
        {
            try
            {
                XDocument doc = XDocument.Load(store.OpenFile("im.xml", FileMode.Open)); ;
               ProdutoLpk.ItemsSource = from query in doc.Descendants("produto") select query.Value;
              //  string fileData;
               // using (IsolatedStorageFileStream isoStream =
                //   new IsolatedStorageFileStream("it.xml", FileMode.Open, store))
               // {
                  //  using (StreamReader reader = new StreamReader(isoStream))
                 //  {
                     //   fileData = reader.ReadToEnd();
                  //  }
               // }
               // this.ProdutoLpk.ItemsSource = fileData.Split(';');
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
        ProdutoLpk.Open();
        Debug.WriteLine(ProdutoLpk);
    }
    private void Button_Enviar(object sender, RoutedEventArgs e)
    {
        String dados = "'nProduto: " + ProdutoLpk.SelectedItem + "'nQuantidade: " + Qtd.Text;
        MessageBox.Show(dados);
        lista.Text = Qtd.Text + " " + ProdutoLpk.SelectedItem;

    }

Windows Phone with XML file

错误消息表明问题出在XML中,而不是在解析XML的c#代码中。有效的XML只能有一个最外层的标记(根元素)。

尝试通过将XML包装在单个根元素中来修复XML,例如:

<produtos>
   <produto>
      <codigo>1</codigo>
      <descricao>Janela</descricao>
      <valor>100.00</valor>
   </produto>
   <produto>
      <codigo>2</codigo>
      <descricao>Porta</descricao>
      <valor>120.00</valor>
   </produto>
   <produto>
      <codigo>3</codigo>
      <descricao>Alambrado</descricao>
      <valor>80.00</valor>
   </produto>
</produtos>

您必须通过xml中的elements才能获得标签。

,

foreach(var word in xml.Root.Element("produto").Elements());   

要了解更多信息,请参考以下详细信息:

http://social.msdn.microsoft.com/forums/en us/a88dea86 ded6 - 4149 a57f b586b53940be/get -元素标签- - xml文件使用c?forum=xmlandnetfx

在字符串数组中导入XML - Windows Phone 7

希望有帮助!