我有这种格式的字符串:
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>
user
和password
需要是实际的字符串变量。
我可以以某种方式将每个字符串存储到自己的文件中,而不是为每个字符串(相当多)设置一个不同的方法吗?唯一的问题是user
和password
变量,每次都需要添加,因此不确定如何处理该部分。
答案 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));
如果您的每个字符串只有user
和password
字段,则会有效。
答案 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>