XElement 存在且 XElement 中的值不为 Null
XElement exists and Value in XElement is not Null
我必须解析一个大 Xml 数据。下面是我的 Xml 数据
的小例子
<Orders>
<PersonalData>
<Id>1</Id>
<WhoOrderedName>
<FirstName>abc</FirstName>
<MiddleName/>
<LastName>xyz</LastName>
</WhoOderedName>
</PersonalData>
.....
</Orders>
我必须验证每个元素是否存在以及值是否不为空。现在我能够以这种方式实现它,但是有没有更好的方法来验证元素是否存在并且值不为空。下面是我的代码
XDocument xml = XDocument.Parse(xmldata)
if (xml.Descendants("PersonalData").Elements("Id").Any())
{
if (!string.IsNullOrWhiteSpace(xml.Descendants("PersonalData").Elements("Id").First().Value))
OrdersXml += xml.Descendants("PersonalData").Elements("Id").First(); //adding the XElement to another xml string
else
Errordetails += "\r\n Id is Null";
}
else
Errordetails += "\r\n Id element is required";
好吧,下面的方法使用的代码稍微少一些,而且它不会每次都查询 xml 中的元素(与您的方法不同):
XDocument xml = XDocument.Parse(xmldata)
var id = xml.Descendants("PersonalData").Elements("Id").FirstOrDefault();
if (id != null)
{
if (!string.IsNullOrWhiteSpace(id.Value))
OrdersXml += id;
else
Errordetails += "\r\n Id is Null";
}
else
Errordetails += "\r\n Id element is required";
这是我的看法,但您应该使用 XSD 架构。
foreach(var personalData in xdoc.Element("Orders").Descendants()){
if(personalData.Value == null){
//error?
}
}
我必须解析一个大 Xml 数据。下面是我的 Xml 数据
的小例子<Orders>
<PersonalData>
<Id>1</Id>
<WhoOrderedName>
<FirstName>abc</FirstName>
<MiddleName/>
<LastName>xyz</LastName>
</WhoOderedName>
</PersonalData>
.....
</Orders>
我必须验证每个元素是否存在以及值是否不为空。现在我能够以这种方式实现它,但是有没有更好的方法来验证元素是否存在并且值不为空。下面是我的代码
XDocument xml = XDocument.Parse(xmldata)
if (xml.Descendants("PersonalData").Elements("Id").Any())
{
if (!string.IsNullOrWhiteSpace(xml.Descendants("PersonalData").Elements("Id").First().Value))
OrdersXml += xml.Descendants("PersonalData").Elements("Id").First(); //adding the XElement to another xml string
else
Errordetails += "\r\n Id is Null";
}
else
Errordetails += "\r\n Id element is required";
好吧,下面的方法使用的代码稍微少一些,而且它不会每次都查询 xml 中的元素(与您的方法不同):
XDocument xml = XDocument.Parse(xmldata)
var id = xml.Descendants("PersonalData").Elements("Id").FirstOrDefault();
if (id != null)
{
if (!string.IsNullOrWhiteSpace(id.Value))
OrdersXml += id;
else
Errordetails += "\r\n Id is Null";
}
else
Errordetails += "\r\n Id element is required";
这是我的看法,但您应该使用 XSD 架构。
foreach(var personalData in xdoc.Element("Orders").Descendants()){
if(personalData.Value == null){
//error?
}
}