如何在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))
));
非常感谢! – 2011-06-07 00:11:37