0

我有一些这种格式的字符串:

public static string Script(string user, string password)
{
    return @"<?xml version='1.0'?>" 
            + "<RIBCL VERSION='2.0'>"
            + "<LOGIN USER_LOGIN='" + user + "' PASSWORD='" + password + "'>"
            + "<SERVER_INFO MODE='read'><GET_HOST_DATA /></SERVER_INFO>"
            + "<RIB_INFO MODE='read'><GET_NETWORK_SETTINGS/></RIB_INFO>"
            + "</LOGIN>"
            + "</RIBCL>";
}

如何将上述字符串变量放入一个如下所示的 xml 文件中:

<?xml version='1.0'?>"
    <RIBCL VERSION='2.0'>
        <LOGIN USER_LOGIN="user" PASSWORD="password">
            <SERVER_INFO MODE="read">
                <GET_HOST_DATA />
            </SERVER_INFO>"
            <RIB_INFO MODE="read">
                <GET_NETWORK_SETTINGS/>
            </RIB_INFO>
        </LOGIN>
</RIBCL>

哪里userpassword需要是实际的字符串变量。

我可以以某种方式将每个字符串存储到自己的文件中,而不是为每个字符串(很多)使用一种不同的方法吗?唯一的事情是userpassword变量,每次都需要添加,所以不确定如何处理该部分。

4

3 回答 3

2

尝试像字符串格式模板一样存储您的字符串

例如,像:

<?xml version='1.0'?>
<RIBCL VERSION='2.0'>
    <LOGIN USER_LOGIN='{0}' PASSWORD='{1}'>
        <SERVER_INFO MODE='read'><GET_HOST_DATA /></SERVER_INFO>
        <RIB_INFO MODE='read'><GET_NETWORK_SETTINGS/></RIB_INFO>
    </LOGIN>
</RIBCL>

您的脚本方法应该从某个地方加载特定的字符串,然后应该应用String.Format

return String.Format(data, HttpUtility.HtmlEncode(user), HttpUtility.HtmlEncode(password));

如果您的每个字符串都只有userpassword字段,它会起作用,应该设置。

于 2013-01-12T16:32:08.040 回答
1

首先,永远不要使用字符串操作来构建 XML。规则不同。例如,如果password其中有一个对 xml 属性无效的字符怎么办?

其次,我建议使用 LINQ to XML 构建您的 XML。那样没有文件 I/O。

于 2013-01-12T16:14:43.260 回答
0

我不得不创建一个类似的应用程序来从 ASP.NET 调用。我发现最好的解决方案是在资源文件夹中创建 xml 文件,然后更新 USER_LOGIN 和 PASSWORD 属性。

需要注意的另一点是,您需要在发送到 HPILO 时从顶部删除 xml 声明,因为它无法识别它。该文件应以

<RIBCL VERSION=2.0>
于 2013-01-12T16:45:01.190 回答