【问题标题】:parse xml files and perform pass/fail test --Linq to xml?解析 xml 文件并执行通过/失败测试 --Linq to xml?
【发布时间】:2011-11-20 05:48:09
【问题描述】:

所以我需要做的是解析 xml 文件并从文件中提取数据,并使用我提取的值让代码确定它是通过还是失败了测试。

例如: 我提取了 XMax,它需要小于 200,如果它是通过,如果它更高它失败。 我提取了XMin,它需要超过-200,如果它是通过,如果它小于它失败。 我提取出 YMax,它需要小于 200,如果它是通过,如果它更高它失败。 我提取出YMin,它需要超过-200,如果它是通过,如果它小于它失败。

这是 xml 文件的样子,其中包含我需要检查的值:

<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>

任何人都对你写什么程序有什么建议我想用 linq to XML 来解析文件和数据,但现在确定我可以如何比较这些值。

【问题讨论】:

    标签: c# parsing linq-to-xml xml-parsing


    【解决方案1】:

    对我来说,使用 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");
    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;
    

    【讨论】:

    • 不,这似乎是它得到了它们,所以代码需要检查文件并调用 xmax 和 xmin's... 如果它高于它失败的值,如果它低于它通过。你写的地方: return xMax -200 && yMax -200;这是返回提取的值吗?我只是想确定它是通过还是失败。
    • @Casey:不管它是否通过了测试,它都会返回。老实说,目前非常不清楚您的意思。请花一些时间澄清您的问题,并阅读tinyurl.com/so-hints
    • 你是否熟悉错误“由于程序返回void,return关键字必须后跟对象表达式。”
    • @Casey:不能说它敲响了警钟,但如果你显示失败的代码,那会有所帮助。你还没有真正清楚地描述你想要做什么 - 我已经展示了我最好的猜测来帮助你,但你真的需要提供更多细节。您是否阅读了我之前评论中的链接?
    • 哦,是的,谢谢你的链接:所以我需要做的是查看 xml 文件并检查以确保 xmax 值低于 200 并且 xmin 高于 -200 并且 ymax 低于并且 Ymin 更高,并且对于每种情况,如果其为真或不正确,代码应返回通过或失败。
    猜你喜欢
    • 2011-11-20
    • 1970-01-01
    • 2012-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多