c#
  • xml
  • string
  • 2013-01-12 35 views 0 likes 
    0

    我有一些字符串格式为:存储XML字符串和变量放入文件

    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变量,每次都需要添加变量,所以不知道如何处理该部分。

    +0

    尝试你的代码与密码='123 /> 456' – I4V

    +0

    工作正常。当输入进入文本框然后写入流中。 –

    +2

    然后尝试打开生成的XML。 –

    回答

    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字段,其​​中sho将被设置。

    +0

    HTML编码与XML编码不同。这是通过字符串操作构建XML的另一种情况,并且具有相同的问题。正如另一位用户较早评论的那样,请使用password ='123 /> 456'来尝试此操作。 –

    +0

    @John Saunders,它工作正常 –

    +0

    是的,这正是我正在寻找的。谢谢。 –

    1

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

    其次,我会推荐使用LINQ to XML构建XML。没有文件I/O那种方式。

    +0

    我并不真的保存任何文件。该字符串然后被发送到另一台机器上的接口,使用.net POST,它侦听该类型的formata并发回响应。 –

    +0

    您问过关于从文件读取XML的问题。我在说,如果你使用LINQ to XML构建XML,那么你将不必处理文件。 –

    +0

    更新了上面的问题,也许它更清晰。 –

    0

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

    还有一点需要注意的是,发送给HPILO时,您需要从顶部删除xml declation,因为它不会识别它。该文件应该从

    <RIBCL VERSION=2.0> 
    
    +0

    这只适用于ilo3或4,2需要它。但它有3和4仍然运行脚本,所以它很好 –

    相关问题