gpt4 book ai didi

c# - 检查 XML 的预期结构

转载 作者:数据小太阳 更新时间:2023-10-29 01:51:26 25 4
gpt4 key购买 nike

我正在调用一个返回包含 XML 数据的字符串的函数。此函数如何工作并不重要,但生成的 xml 可能会有所不同,具体取决于函数的成功与否。

基本上,该函数将返回预期的 XML 或错误格式的 XML。下面是两个结果可能看起来像的基本示例...

关于成功:

<SpecificResult>
<Something>data</Something>
</SpecificResult>

出错时:

<ErrorResult>
<ErrorCode>1</ErrorCode>
<ErrorMessage>An Error</ErrorMessage>
</ErrorResult>

我的系统设置方式是我可以使用简单的转换器函数将 xml 字符串转换为类,但这需要我知道类类型。成功后,我会知道它是 SpecificResult,我可以转换。但我想先检查是否发生错误。

理想的最终结果将允许类似这样的事情......

string xml = GetXML();
if(!IsError(xml))
{
//convert to known type and process
}

所以问题是,实现 IsError 的最佳方式是什么?功能?

我想到了几个选项,但不确定我是否真的喜欢其中任何一个...

  1. 检查xml字符串是否包含"<ErrorResult>"
  2. 尝试将 xml 转换为 ErrorResult 类并检查是否失败
  3. 使用 XDocument 或类似的内置函数来解析树并搜索 ErrorResult 节点

最佳答案

由于 GetXml() 方法本质上返回的是未类型化 数据,因此这里唯一安全的假设是它的结构为 XML,因此最安全断言其实际类型的方法是将其解析为 XML:

private bool IsError(string xml)
{
var document = XDocument.Parse(xml);
return document.Element("ErrorResult") != null;
}

关于c# - 检查 XML 的预期结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9095452/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com