LINQ to XML: последовательность не содержит элементов - PullRequest
0 голосов
/ 25 мая 2011

У меня есть этот XML

   <?xml version="1.0" encoding="utf-8"?>
    <root>
        <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
        <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
        <xsd:element name="root" msdata:IsDataSet="true">
      <xsd:complexType>
        <xsd:choice maxOccurs="unbounded">
          <xsd:element name="metadata">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" />
              </xsd:sequence>
              <xsd:attribute name="name" use="required" type="xsd:string" />
              <xsd:attribute name="type" type="xsd:string" />
              <xsd:attribute name="mimetype" type="xsd:string" />
              <xsd:attribute ref="xml:space" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="assembly">
            <xsd:complexType>
              <xsd:attribute name="alias" type="xsd:string" />
              <xsd:attribute name="name" type="xsd:string" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="data">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
              <xsd:attribute ref="xml:space" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="resheader">
            <xsd:complexType>
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" use="required" />
            </xsd:complexType>
          </xsd:element>
        </xsd:choice>
      </xsd:complexType>
    </xsd:element>
   </xsd:schema>
  <resheader name="resmimetype">
    <value>text/microsoft-resx</value>
  </resheader>
  <resheader name="version">
    <value>2.0</value>
  </resheader>
  <resheader name="reader">
    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
  <resheader name="writer">
    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
  <data name="Nieuws" xml:space="preserve">
    <value>News</value>
  </data>
  <data name="Pagina's" xml:space="preserve">
    <value>Pages</value>
  </data>
  <data name="searchreasults" xml:space="preserve">
    <value>There were no matches found</value>
  </data>
</root>

И у меня также есть этот метод, где я беру два файла и беру некоторые значения из них, а затем объединяю все значения в объект во втором запросе:

Public Shared Function RetrieveTranslation(ByVal filefrom As String, ByVal fileto As String) As List(Of clsTranslation)
    Dim valuefrom = (From l In XElement.Load(fileto).Elements("data") Select l.Element("value").Value).FirstOrDefault

    Dim valuetrans = From vl In XElement.Load(filefrom).Elements("data") Select (New clsTranslation With {.Filename = filefrom, .Value = vl.Element("value").Value, .Valueto = valuefrom.ToString, .TranslationId = vl.Attribute("name").Value})
    Return valuetrans.ToList

End Function

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

Есть какие-нибудь подсказки?

Заранее спасибо,

Альф.

PS: О!И, между прочим, мне любопытно узнать, хорошо ли делать что-то, как я, создать объект из двух запросов, поместив первое значение во второй запрос.Спасибо!

1 Ответ

0 голосов
/ 31 мая 2011

РЕШИТЬ! Моя проблема была не с кодом, а с другими пустыми XML-файлами ... Спасибо за помощь!

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