【问题标题】:Fiddler XML Parsing提琴手 XML 解析
【发布时间】:2015-12-01 04:59:52
【问题描述】:

FiddlerScript 是 capable of JSON parsing and modification。例如,以下对OnBeforeResponse 的添加将偷偷地将Ipify's 返回的外部IP 地址替换为127.0.0.1

if (oSession.url == "api.ipify.org/?format=json"){
    var j = GetResponseJson(oSession);
    j["ip"] = "127.0.0.1";
    SetResponseJson(oSession, j); 
}

GetResponseJsonSetResponseJson 是我根据 Eric 的链接答案制作的辅助函数:

static function GetResponseJson(oSession: Session){
    return Fiddler.WebFormats.JSON.JsonDecode(oSession.GetResponseBodyAsString()).JSONObject;
}
static function SetResponseJson(oSession: Session, j){  
    oSession.utilSetResponseBody(Fiddler.WebFormats.JSON.JsonEncode(j));
}

这对于修改 Fiddler 拦截的 JSON 有效负载非常有用。

我的问题是:

  • 在 FiddlerScript 中是否有等效的方法来解析和修改 XML

【问题讨论】:

    标签: javascript json xml fiddler


    【解决方案1】:

    FiddlerScript 使用 JScript.NET,因此可以引用 .NET 程序集,包括 System.Xml,其中包含 XmlDocument 类。

    首先,在 Fiddler > Tools > Fiddler Options > Extensions,添加对System.Xml.dll的引用:

    接下来,在 FiddlerScript 的顶部,引用它:

    import System.Xml;
    

    此时,您可以创建XmlDocument 对象:

    var x = new XmlDocument();
    

    【讨论】:

      【解决方案2】:

      要在响应中从 XML 中的节点添加自定义列,您需要使用 FiddlerScript。

      加载 System.xml 引用后需要什么,在 FiddlerScript(规则 > 自定义规则)中,您可以添加:

      public static BindUIColumn("Request")
          function testXmlColumn(oSession: Session){
              if (oSession.oResponse != null && oSession.oResponse["Content-Type"] == "text/xml; charset=utf-8") {
                  var doc = new XmlDocument();
      
                  doc.LoadXml(oSession.GetResponseBodyAsString());
      
                  var xPathString = '/an/XPath/Expression';
      
                  var xmlNode = doc.DocumentElement.SelectSingleNode(xPathString);
      
                  return xmlNode.InnerText;
            }
          return "";
      }
      

      显然,您需要将/an/XPath/Expression 替换为XPath 表达式。这是匹配节点的相当简单的语言。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-09-26
        • 2017-07-10
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多