问题列表 - 第41891页

如何通过路径检索特定XML节点的值?

我正在寻找这个问题的Javascript解决方案:

我有一个XML文档,它通过典型的AJAX方法加载:

var xml = http.responseXML;

请考虑以下示例xml片段:

<main>
    <primary>
         <enabled>true</enabled>
     </primary>
     <secondary>
         <enabled>true</enabled>
     </secondary>
 </main>
Run Code Online (Sandbox Code Playgroud)

我想通过指定路径获取节点的值,如下所示:

var second_enabled = getNodeValueByPath('main/secondary/enabled', xml);
Run Code Online (Sandbox Code Playgroud)

做这样的事情我找不到任何简洁的方法.我似乎被迫在使用之后迭代节点集合getElementsByTagName等.

我将如何构造该方法,getNodeValueByPath或者在Javascript中是否有一些允许这样做的构造?

我不熟悉Javascript.

编辑:这是一个示例,显示我尝试使用XPath及其失败的方式:

XML:

<?xml version="1.0" ?>
<main xmlns="example.com">
  <primary>
    <enabled>true</enabled>
  </primary>
  <secondary>
    <enabled>false</enabled>
  </secondary>
</main>
Run Code Online (Sandbox Code Playgroud)

JavaScript :(这些只是相关的功能)

function useHttpResponse()
{
    if (http.readyState == 4)
    {
        if(http.status == 200)
        {
            var xml = http.responseXML;
            var evalue = getXMLValueByPath('/main/secondary/enabled', xml);
            alert(evalue);
        }
    }
}

function getXMLValueByPath(nodepath, xml)
{
    var result = xml.evaluate(nodepath, xml, …
Run Code Online (Sandbox Code Playgroud)

javascript xml xpath

5
推荐指数
1
解决办法
2万
查看次数

使用或不使用SSL?为什么总是使用SSL?

使用SSL的理由是防止一些经历过窥探流量的恶意用户能够读取您的流量.因此,虽然使用不安全的无线(非WPA2)网络在登录您的银行帐户或提供您的信用卡号时使用SSL可能有意义,但我发现很难看到它在更常见的商业案例中的必要性.

为什么甚至打扰SSL?(当您的客户不在无担保的无线网络上时)

有人可以窥探你的特定HTTP连接和数据的唯一方法是,如果他们有管理员访问你的路由器(然后只有有一些工具来监控/复制流量),在你的机器上安装了一些工具(一个关键的记录器当然无论如何都会通过SSL)或他们在ISP监控你(在大多数司法管辖区都需要手令).

更新警告某些司法管辖区并不像您想象的那样自由,尤其是第一和第二世界,例如在英国,政府可能很快就不需要手令:http://en.wikipedia.org/wiki/Communications_Data_Bill_2008这可能需要能够在历史上阅读网站(即解密SSL)和美国的"爱国者法案" http://en.wikipedia.org/wiki/US_Patriot_Act#Title_II:_Surveillance_procedures

此外:

  • 接受SSL连接服务器端会增加大量负载,因为建立连接是处理器密集型的(在生成密钥期间).
  • 必须定期从第三方购买公开信任的SSL证书

更新:我实际上正在使用SSL,但我认为无论如何都要提出问题是值得的.当然我认为有时间SSL不是必需的.也许这可以变成一个关于SSL优缺点的社区维基?如果是这样的话?

在下面的答案中似乎经常出现神话:"你和服务器之间的任何人都可以偷听你"......

  • 这在Internet上是不可能的,因为低级TCP路由器只转发它们必须去的数据包,甚至在同一个会话中也可以通过不同的路由进行路由,除非在极端情况下,没有人可以查看这些数据包 - 技术上或合法.
  • 至于ISP的某个人在查看你的流量,我想知道为什么他们会发出信号告诉你并查看"非常重要的数据",毫无疑问这对他们来说很无聊,如果没有授权,这也是非法的.
  • 在你的局域网(无线除外)上,除非你使用恐龙集线器播放每个数据包,否则无法监听别人的流量 - 这是不可能的,因为即使你有你的网卡,硬件也不会发送给你的数据包在混杂模式下,正在使用嗅探工具,如Snort或Wireshark.

被动ARP中毒是一种监听方式,但必须在内部完成,并且应该在名称冲突等情况下被接收并且通常默认网关将是静态的,因此将是v.难以导致默认网关将在您之前打开.

security ssl https

20
推荐指数
2
解决办法
4万
查看次数

我可以从控制台程序启动Windows窗体

我想从控制台程序启动一个新的Windows窗体.这可能吗?

winforms

0
推荐指数
1
解决办法
2431
查看次数

在Windows中echo -e等效?

在Windows中是否有任何Linux"echo -e"等效,所以我可以使用"echo -e\xnnn"打印出ASCII码为十六进制值nnn的字符?

windows batch-file echo

8
推荐指数
2
解决办法
2万
查看次数

需要便携式SQL upsert(插入+更新)解决方案

我需要对数据库执行一个非常简单的操作 - 按键将一些值放入表中,如果行存在 - 更新它,如果不存在 - 创建一个新的.问题是我需要以可移植的方式进行 - 即相同的查询必须适用于MySQL,SQL Server,Oracle,最好也适用于DB2,Postgres等.所以虽然我可以使用REPLACEINSERT ... ON DUPLICATE KEY UPDATE在MySQL中使用,但我不确定这些将支持这种语法.我真的想避免使用数据库类型,因为这是不可维护的.我也不想在更新之前实际查询该值,因为我怀疑它会显着减慢该过程(我需要多次执行).

到目前为止,我想出的最好的就是:

  UPDATE table SET data='data' WHERE key='key';
  INSERT INTO table(key, data) VALUES ('key', 'data');
Run Code Online (Sandbox Code Playgroud)

其中一个总会成功,另一个会失败,但我不在乎其中一个查询失败.虽然看起来不那么优雅.有什么建议如何让它变得更好?

mysql sql database sql-server oracle

2
推荐指数
1
解决办法
857
查看次数

JavaScript中的基本流控制

请您解释一下,如何在JavaScript中编写真正基本的流控制?谢谢.

flow([

  function(callback) { /* do something */ callback(); /* run next function */ },
  function(callback) { /* do something */ callback(); /* run next function */ },
  function(callback) { /* do something */ callback(); /* run next function */ },
  function(callback) { /* do something */ callback();  }

], function() {

  alert("Done.");

});
Run Code Online (Sandbox Code Playgroud)

javascript

5
推荐指数
2
解决办法
1828
查看次数

关于泛型编程的c#语法帮助

 TEntity Single(Expression<Func<TEntity, bool>> predicate);
Run Code Online (Sandbox Code Playgroud)

请解释参数.

c#

3
推荐指数
1
解决办法
137
查看次数

F#中的组合和排列

我最近为F#项目编写了以下组合和排列函数,但我很清楚它们远未优化.

/// Rotates a list by one place forward.
let rotate lst =
    List.tail lst @ [List.head lst]

/// Gets all rotations of a list.
let getRotations lst =
    let rec getAll lst i = if i = 0 then [] else lst :: (getAll (rotate lst) (i - 1))
    getAll lst (List.length lst)

/// Gets all permutations (without repetition) of specified length from a list.
let rec getPerms n lst = 
    match n, lst with
    | 0, _ -> …
Run Code Online (Sandbox Code Playgroud)

f# combinations permutation combinatorics

11
推荐指数
2
解决办法
4425
查看次数

为什么Android的onItemClick需要很长的行ID?

对于listView,当您注册OnItemClickListener时,您指定的方法如下所示:

public abstract void onItemClick(AdapterView parent,View view,int position,long id)

id对应于用户单击的行.我的问题是为什么它很长而不是int?你什么时候用它?当我使用它时,我一直把它转换为int,所以它让我觉得可能我错了.

java android listview listener

3
推荐指数
1
解决办法
1253
查看次数

Android图形内存限制

我正在使用opengl和cocos2d端口创建一个Android游戏(http://code.google.com/p/cocos2d-android-1).我的目标是广泛的设备,并希望确保它表现良好.我只测试一个nexus,我希望得到一些有较慢设备经验的人的意见.

目前游戏使用两个1024x1024纹理以及两个256x256纹理.这是否在大多数设备的限制范围内?在这些情况下,任何人都有任何经验法则或图形内存限制经验吗?如果超出gfx内存,它会翻页到正常内存吗?

android opengl-es cocos2d-android

5
推荐指数
2
解决办法
6823
查看次数