相关疑难解决方法(0)

使用单引号和双引号编码XPath表达式

XPath(v1)无法编码表达式.

如果您只有单个OR双引号,那么您可以使用诸如的单词

//review[@name="Bob's Pizza"]
//review[@name='"Pizza" Pam']
Run Code Online (Sandbox Code Playgroud)

但是如果你有两个例如[弗雷德的"Fancy Pizza"]那么你必须在XPath(C++)中使用像Escaping Strings这样的东西来生成

//review[@name=Concat("Fred's ",'"Fancy Pizza"')]
Run Code Online (Sandbox Code Playgroud)

任何人都有c#函数来执行此操作?

一些链接很接近

编辑:一些答案建议转义'with '和',"但虽然这是有道理的,它不起作用;尝试使用XML片段:

<review name="Bob's Pizza"/>
Run Code Online (Sandbox Code Playgroud)

和xpath

//review[@name='Bob&apos;s Pizza']
Run Code Online (Sandbox Code Playgroud)

c# xml xpath xpath-1.0

27
推荐指数
4
解决办法
3万
查看次数

使用Nokogiri在XPath中逃脱单引号?

我有一个看起来像这样的XPath查询,包括单引号和双引号.如何正确地转义撇号以使查询有效?

我试过了:

"//li[text()='Frank&apos;s car']"
Run Code Online (Sandbox Code Playgroud)

但它似乎不适合我.

有任何想法吗?

 "//li[text()='Frank's car']"
Run Code Online (Sandbox Code Playgroud)

ruby xpath nokogiri

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

使用php jsonpath解析JSON

我正在尝试使用jsonpath解析PHP中的JSON ....

我的JSON来自于此

https://servizionline.sanita.fvg.it/tempiAttesaService/tempiAttesaPs

(这里剪切/粘贴太长了,但你可以在浏览器会话中看到它......)

JSON是一个有效的JSON(我已经使用https://jsonlint.com/ ... 验证了它).

我已经尝试使用http://www.jsonquerytool.com/的jsonpath表达式,所有看起来都很好,但是当我把所有的PHP代码示例放在下面....

<?php  
    ini_set('display_errors', 'On');
    error_reporting(E_ALL);

    require_once('json.php');      // JSON parser
    require_once('jsonpath-0.8.0.php');  // JSONPath evaluator

    $url = 'https://servizionline.sanita.fvg.it/tempiAttesaService/tempiAttesaPs';

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_AUTOREFERER, TRUE);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
    curl_setopt($ch, CURLOPT_PROXY, '');
    $data = curl_exec($ch);
    curl_close($ch);

    $parser = new Services_JSON(SERVICES_JSON_LOOSE_TYPE);
    $o = $parser->decode($data);

    $xpath_for_parsing = '$..aziende[?(@.descrizione=="A.S.U.I. - Trieste")]..prontoSoccorsi[?(@.descrizione=="Pronto Soccorso e Terapia Urgenza Trieste")]..dipartimenti[?(@.descrizione=="Pronto Soccorso Maggiore")]..codiciColore[?(@.descrizione=="Bianco")]..situazionePazienti..numeroPazientiInAttesa';

    $match1 = jsonPath($o, $xpath_for_parsing);
    //print_r($match1);
    $match1_encoded = $parser->encode($match1);
    print_r($match1_encoded); …
Run Code Online (Sandbox Code Playgroud)

php parsing json jsonpath

8
推荐指数
1
解决办法
2983
查看次数

升级到 php 8.1 现在出现“PHP 已弃用:addslashes()”

我刚刚从 7.3 升级到 php 8.1,并解决了一些损坏的问题。弹出的一条消息是“PHP 已弃用:addslashes()”。我们经常使用该命令,这并不是为了防止 mysql 注入。我们必须处理其中可能包含特殊字符的名称 ' ~ 等。

但是当我查看https://www.php.net/manual/en/function.addslashes.php时 ,它说 PHP8 支持它。

抱歉,我想我还是个新手……但我错过了什么?如果它已经出来了,那么现在支持的处理方式是什么?

更新以添加代码示例和问题澄清

现在我已经睡过了,我发现这不是addslashes() 上的弃用错误。这是一个错误,表明我们传递给函数的值为 NULL。我在文档中看到从 8.1 开始不再允许这样做。

因此,根据这些信息,处理以下示例的新的和改进的方法是什么。

$(function () {
$('.adminheader').html('<?php addslashes(GetMainEventNames()); ?>');
$('.maineventbuttons').button().each(function () {
  var MainEventCode = $(this).attr('data-code');
          $(this).click(function () {
            ChangeLocalActiveStatus(MainEventCode);
          });
      });
Run Code Online (Sandbox Code Playgroud)

错误信息

PHP Deprecated:  addslashes(): Passing null to parameter #1 ($string) of type string is deprecated in....
Run Code Online (Sandbox Code Playgroud)

php

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

标签 统计

php ×2

xpath ×2

c# ×1

json ×1

jsonpath ×1

nokogiri ×1

parsing ×1

ruby ×1

xml ×1

xpath-1.0 ×1