C# 解析xml文件并执行通过/失败测试——Linq到xml?
因此,我需要做的是解析xml文件并从文件中提取数据,使用我提取的值,我需要让代码确定它是否通过了测试 例如: 我提取出XMax,它需要小于200,如果它是通过的,如果它是更高的,它就失败了。 我提取出XMin,它需要大于-200,如果它是通过的,如果它是失败的。 我提取出YMax,它需要小于200,如果它是通过的,如果它更高,它失败了。 我提取出YMin,它需要大于-200,如果它通过了,如果它失败了,那么它通过了 以下是xml文件的外观以及我需要检查的值:C# 解析xml文件并执行通过/失败测试——Linq到xml?,c#,parsing,linq-to-xml,xml-parsing,C#,Parsing,Linq To Xml,Xml Parsing,因此,我需要做的是解析xml文件并从文件中提取数据,使用我提取的值,我需要让代码确定它是否通过了测试 例如: 我提取出XMax,它需要小于200,如果它是通过的,如果它是更高的,它就失败了。 我提取出XMin,它需要大于-200,如果它是通过的,如果它是失败的。 我提取出YMax,它需要小于200,如果它是通过的,如果它更高,它失败了。 我提取出YMin,它需要大于-200,如果它通过了,如果它失败了,那么它通过了 以下是xml文件的外观以及我需要检查的值: <XAxisCalib>
<XAxisCalib>
<Max>288.46</Max>
<Min>-46.6</Min>
</XAxisCalib>
<YAxisCalib>
<Max>646.76</Max>
<Min>-89.32</Min>
</YAxisCalib>
<ZAxisCalib>
<Max>19.24</Max>
<Min>-143.63</Min>
288.46
-46.6
646.76
-89.32
19.24
-143.63
任何人都有关于如何编写程序的建议,我一直在考虑使用linq to XML来解析文件和数据,但现在确定如何比较这些值。使用linq to XML听起来不错,是的。比如:
XDocument doc = XDocument.Load("file.xml");
int xMax = (int) doc.Root.Element("XMax");
int yMax = (int) doc.Root.Element("YMax");
int xMin = (int) doc.Root.Element("XMin");
int yMin = (int) doc.Root.Element("YMin");
return xMax < 200 &&
xMin > -200 &&
yMax < 200 &&
yMin > -200;
public bool ValidateXMax(XDocument doc)
{
int xMax = (int) doc.Root.Element("XMax");
return xMax < 200;
}
XDocument doc=XDocument.Load(“file.xml”);
int xMax=(int)doc.Root.Element(“xMax”);
int yMax=(int)doc.Root.Element(“yMax”);
intxmin=(int)doc.Root.Element(“xMin”);
int-yMin=(int)doc.Root.Element(“yMin”);
返回xMax<200&&
xMin>-200&&
yMax<200&&
yMin>-200;
如果你不是这么想的,请提供更多细节
编辑:如果问题是有四个不同的测试,您可能需要以下内容:
XDocument doc = XDocument.Load("file.xml");
int xMax = (int) doc.Root.Element("XMax");
int yMax = (int) doc.Root.Element("YMax");
int xMin = (int) doc.Root.Element("XMin");
int yMin = (int) doc.Root.Element("YMin");
return xMax < 200 &&
xMin > -200 &&
yMax < 200 &&
yMin > -200;
public bool ValidateXMax(XDocument doc)
{
int xMax = (int) doc.Root.Element("XMax");
return xMax < 200;
}
public bool ValidateXMax(XDocument文档)
{
int xMax=(int)doc.Root.Element(“xMax”);
返回xMax<200;
}
。。。但重复了四次。当然,重复是有点难看,因为是硬编码的价值观,但它不清楚你想做什么,老实说。另一种选择:
XDocument doc = XDocument.Load("file.xml");
int xMax = (int) doc.Root.Element("XMax");
int yMax = (int) doc.Root.Element("YMax");
int xMin = (int) doc.Root.Element("XMin");
int yMin = (int) doc.Root.Element("YMin");
bool xMaxValid = xMax < 200;
bool yMaxValid = yMax < 200;
bool xMinValid = xMin > -200;
bool xMinValid = yMin > -200;
XDocument doc=XDocument.Load(“file.xml”);
int xMax=(int)doc.Root.Element(“xMax”);
int yMax=(int)doc.Root.Element(“yMax”);
intxmin=(int)doc.Root.Element(“xMin”);
int-yMin=(int)doc.Root.Element(“yMin”);
bool xMaxValid=xMax<200;
bool yMaxValid=yMax<200;
bool xMinValid=xMin>-200;
bool xMinValid=yMin>-200;
不,这似乎是在获取它们的值,因此代码需要检查文件并调用xmax和xmin的。。。如果高于该值,则失败;如果低于该值,则通过。您写道:返回xMax<200&&xMin>-200&&yMax<200&&yMin>-200;这是否返回提取的值?我只想确定它是通过还是失败。@Casey:这是返回它是否通过测试。老实说,目前还不清楚你的意思。请花些时间澄清您的问题,并阅读您是否熟悉错误“由于程序返回void,返回关键字后面必须跟有对象表达式。”@Casey:不能说这听起来很有道理,但如果您显示失败的代码,这会有所帮助。你还没有很清楚地描述你要做的事情——我已经给出了我的最佳猜测来帮助你,但是你真的需要给出更多的细节。你读了我之前评论中的链接了吗?哦,是的,谢谢你的链接:所以我需要做的是查看xml文件并检查以确保xmax值低于200,xmin高于-200,ymax低于,Ymin高于,如果每种情况下都为真或假,那么代码应该返回通过或失败。