0

我最近一直在使用 xml。并且注意到了一些现象(对世界其他地方来说可能没什么大不了的,但对我来说确实如此)。也许,我是个新手。但是不应该将大多数硬编码或幻数分解为配置文件吗?例如,

    string url = "http://www.domain.com/aDocument.xml";        
    XmlDocument feed = new XmlDocument();
    feed.Load(url);

    XmlNode errorsNode = feed.SelectSingleNode("Errors");

    if (errorsNode != null)
    {
        XmlNode error = errorsNode.FirstChild;
        lblError.Text = "Error: " + error.SelectSingleNode("Code").InnerText;
    }

这是xml文档:

  <Errors>
    <Error>
        <Code>AWS.MissingParameters</Code>
        <Message>You are missing an parameter</Message>
    </Error>
 </Errors>

如果没有硬编码“代码”或“消息”,你将如何解析它?

4

2 回答 2

2

就像我对数字一样。我将声明具有要获取的元素名称的字符串类型的常量,然后将其传递给我的 XML 工具上的方法。

但是,您可能需要考虑从 XML 文档(或架构,如果有的话)创建一个对象表示,它将为您处理所有这些。这样,您只需将 XML 文档加载到代码中,它就会为您解析为对象表示。

然后,如果 XML 更改,您将修改生成的代码以使用新元素名称。

您想为此使用 XSD.EXE 工具。

于 2009-02-19T03:58:05.403 回答
2

我不知道这是否是最好的选择,但我通常看到这种事情是通过使用一组字符串常量来处理的。至少,如果您在多个地方处理相同的 XML 模式,那么您的魔术字符串都定义在一个地方。我认为除非架构经常更改,否则将其降级为配置文件将是矫枉过正。

于 2009-02-19T03:58:27.540 回答