将xml字符串和变量存储到文件中

时间:2013-01-12 16:11:40

标签: c# xml string

我有这种格式的字符串:

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变量,每次都需要添加,因此不确定如何处理该部分。

3 个答案:

答案 0 :(得分: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字段,则会有效。

答案 1 :(得分:1)

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

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

答案 2 :(得分:0)

我必须创建一个从ASP.NET调用的类似应用程序。我发现最好的解决方案是在resources文件夹中创建xml文件,只需更新USER_LOGIN和PASSWORD属性。

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

开头
<RIBCL VERSION=2.0>