从文件的一部分创建变量

时间:2013-09-18 17:52:29

标签: c#

您无法确定从Windows远程协助创建的文件创建变量的开始位置。我需要从文本文件中提取端口,这样我就可以创建一个ssh隧道,允许从任何地方远程协助。

端口出现在'RCTICKET =“65538,1,192.168.9.22:7532”中的IP地址之后,'冒号是整个文件中的第一个,所以我想我需要搜索第一个“:”然后复制它之后的4位数,除非端口是5位数(我想在这里检查第5个字符是否是逗号意味着4位数字端口,如果它的数字意味着5位数端口)

任何帮助从哪里开始我已经谷歌搜索了几个小时只是想不出如何把它放在搜索词中。

以下是我需要从

提取端口的Microsoft远程协助创建的test.msrcincident文件的示例
<?xml version="1.0"?>
<UPLOADINFO TYPE="Escalated"><UPLOADDATA USERNAME="jon"          LHTICKET="BDF9C9782B31A1BC276C029A169930ABB4490E2088169FA45A3A095258F5C54D345F4D793363E2C9   B924C5D6A38210AF2E86B3E3D33E5BEB3E35729ECDA88D5F5CE23879899768432726AF419FA2147194F4358BA2A0F245C4307EC8CAB882E2B670977562E5423C90EC336A15BA3DC57496F1EBB26B55B449B45FBD317CD4E422186EA7989F78C6FC3019BCF5831B1E060B174C5254D92448992A543079E576A66617F8B5BEA4C5961FC75C0B67F28B996CD4F1247DBC1C725B9D69B094B53AE24A533501A607CF119ED99C34F0C7210376C6564A48E25871AA32934409D981CF63F60DA956B0877AFBD669DFC321D16D55A34B9949AE0B26B6EEB473915AC416ABFC1129C08021F4011F1F0D1869BB86842C0218C03286C956FC7897B319E0B3A495EBA8ED41835E84E6BAD6B30199F6ACF191B6529DF2C5A264F578AF3B31A84997DA9C4BF1F8AD9E4931F99AE94A0E66D941F050AC0B025523148A95D24E60A6C548341C486BB40089B2088F5FE49AC966D65B728E36E0D7D76C98827335983BEC912DFC0B714DBBBFA060DE62658E7BABDB9BEB45486138950548DA62FDFD6437D0798A67D20CA1911880F58FCDA5F98FA5E0CAEF643171FE9DA8AF046" RCTICKET="65538,1,192.168.9.22:7532,*,U15FphW2EDtpPVdlHmafYLmnO/aVc+YFoFEw30tpjJ+6vJ+LspOTtaqgFoDt3bsp,*,*,P1ooZJPDyfMMTXqlz5hACdwD8F4=" PassStub="TE*0ViGNuB2T6I"     RCTICKETENCRYPTED="1" DtStart="1379526042" DtLength="360" L="0"/></UPLOADINFO>

感谢您阅读

1 个答案:

答案 0 :(得分:0)

像这样简单的东西会在某种程度上为您提供所需的数据:

    var reader = XDocument.Load("path to XML file");
    var data = reader.Element("UPLOADINFO")
                     .Element("UPLOADDATA")
                     .Attribute("RCTICKET")
    var values = data.Split(',');

您需要使用该RCTICKET字符串来提取所需的值。在单个属性的上下文中使用逗号,冒号等等而不是整个文件会更安全一些。警告:当我生成事件文件时,我最终在RCTICKET字段中有多个IP地址。我的机器中有多个VPN和以太网适配器。你必须选择正确的。

如果XML不是我们期望的格式,或者文件无法访问,您还需要处理失败。您可以使用try / catch和/或检查空值来执行此操作。