如何在LinqQuery中添加输入检查,以便仅在输入有效的情况下构建XML

本文关键字:输入 有效 情况下 XML 构建 LinqQuery 添加 检查 | 更新日期: 2023-09-27 17:58:27

我有一个需要用来构建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为null或空的情况下,但我希望它只在classInput是非空字符串的情况下构建子XML。即在上述情况下,我只想构建:

<Classes />如果,则说classInput=";

尝试在查询中添加一个检查,但随后它按字符方式处理字符串classInput,而不是作为字符串。然后我得到

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

我有更多的输入,我必须以同样的方式构建更多的子元素,所以我需要一个可以扩展的解决方案。

如何在LinqQuery中添加输入检查,以便仅在输入有效的情况下构建XML

使用条件运算符检查输入,如果输入为null或空,则返回null:

XDocument classes = new XDocument(
                      new XElement("Classes", String.IsNullOrEmpty(classInput) ?
                          null :
                          new XElement("Class",
                              new XElement("Name", classInput))
                    ));