如何在Linq查询中添加输入检查以仅在输入有效时构建XML

如何在Linq查询中添加输入检查以仅在输入有效时构建XML

问题描述:

我有一个输入值,我需要使用它来构建XML。只有当值存在时,我是否需要构建子元素。如何在Linq查询中添加输入检查以仅在输入有效时构建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为空或空的情况下

,但我想它只有在classInput是一个非空字符串时才构建子XML。即在上述情况下,我只想构建:

<Classes /> if,say classInput =“”;

试图在查询中添加一个检查,但它然后处理字符串classInput字符而不是字符串。然后我得到

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

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

检查输入了conditional operator和返回null如果输入为空或空:

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

非常感谢! – 2011-06-07 00:11:37