Как добавить проверку ввода в запросе Linq для построения XML, только если ввод действителен - PullRequest
1 голос
/ 07 июня 2011

У меня есть входное значение, которое мне нужно использовать для создания XML.Только если значение существует, мне нужно построить подэлементы.

Пример

string classInput="something";     
XDocument classes = new XDocument(
                     new XElement("Classes",
                                         new XElement("Class",
                                                 new XElement("Name", classInput))
                                                ));

возвращает то, что я хочу:

<Classes>
  <Class>
    <Name>something</Name>
  </Class>
</Classes>

Однако запросвыше возвращает:

<Classes>
  <Class>
    <Name></Name>
  </Class>
</Classes>

в случае, если classInput является нулевым или пустым, но я хочу, чтобы он создавал суб-XML, только если classInput является непустой строкой.т.е. в приведенном выше случае я просто хотел бы построить:

<Classes /> if, скажем, classInput = "";

Попытался добавить проверку в запрос, но затем он обрабатываетмудрый символ строки stringInput, а не как строка.Затем я получаю

 <Classes>
      <Class>
        <Name>something</Name>
      </Class>
    </Classes>

У меня есть еще несколько входных данных, которые я должен построить таким же образом, чтобы создать еще несколько подэлементов, поэтому мне нужно решение, которое может быть расширяемым.

1 Ответ

0 голосов
/ 07 июня 2011

Проверьте вход с помощью условного оператора и верните ноль, если вход нулевой или пустой:

XDocument classes = new XDocument(
                      new XElement("Classes", String.IsNullOrEmpty(classInput) ?
                          null :
                          new XElement("Class",
                              new XElement("Name", classInput))
                    ));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...