本文整理汇总了PHP中Symfony\Component\CssSelector\CssSelector::toXPath方法的典型用法代码示例。如果您正苦于以下问题:PHP CssSelector::toXPath方法的具体用法?PHP CssSelector::toXPath怎么用?PHP CssSelector::toXPath使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Symfony\Component\CssSelector\CssSelector
的用法示例。
在下文中一共展示了CssSelector::toXPath方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: translateToXPath
/**
* Translates CSS into XPath.
*
* @param string|array $locator current selector locator
*
* @return string
*/
public function translateToXPath($locator)
{
if (!is_string($locator)) {
throw new \InvalidArgumentException('The CssSelector expects to get a string as locator');
}
// Symfony 2.8+ API
if (class_exists('Symfony\\Component\\CssSelector\\CssSelectorConverter')) {
$converter = new CssSelectorConverter();
return $converter->toXPath($locator);
}
// old static API for Symfony 2.7 and older
return CSS::toXPath($locator);
}
示例2: testBlender
public function testBlender()
{
$inputDir = __DIR__ . '/../../ressources/input';
$outputDir = __DIR__ . '/../../ressources/output';
$this->process->blend($inputDir, $outputDir);
$exiftoolBinary = __DIR__ . '/../../../vendor/alchemy/exiftool/exiftool';
$metas = array('NomdelaPhoto' => array('src' => 'IPTC:Headline', 'value' => 'hello'), 'Rubrique' => array('src' => 'IPTC:Category', 'value' => 'salut'), 'MotsCles' => array('src' => 'IPTC:Keywords', 'value' => 'kakoo'), 'DatedeParution' => array('src' => 'IPTC:Source', 'value' => '2012/04/13'), 'DatePrisedeVue' => array('src' => 'IPTC:DateCreated', 'value' => '2012:04:13'), 'Ville' => array('src' => 'IPTC:City', 'value' => 'paris'), 'Pays' => array('src' => 'IPTC:Country-PrimaryLocationName', 'value' => 'france'), 'Copyright' => array('src' => 'IPTC:CopyrightNotice', 'value' => 'yata'));
$cmd = $exiftoolBinary . ' -X ' . __DIR__ . '/../../ressources/output/1.jpg';
$output = shell_exec($cmd);
if ($output) {
$document = new \DOMDocument();
$document->loadXML($output);
$xpath = new \DOMXPath($document);
$xPathQuery = CssSelector::toXPath('*');
foreach ($metas as $metaInfo) {
$found = false;
foreach ($xpath->query($xPathQuery) as $node) {
$nodeName = $node->nodeName;
$value = $node->nodeValue;
if ($nodeName == $metaInfo['src']) {
$this->assertEquals($value, $metaInfo['value']);
$found = true;
continue;
}
}
if (!$found) {
$this->fail('missing ' . $metaInfo['src']);
}
}
}
}
示例3: translateToXPath
/**
* Translates CSS into XPath.
*
* @param string|array $locator current selector locator
*
* @return string
*/
public function translateToXPath($locator)
{
if (!is_string($locator)) {
throw new \InvalidArgumentException('The CssSelector expects to get a string as locator');
}
return CSS::toXPath($locator);
}
示例4: query
/**
* Return DOMNodeList from CSS selector
*
* @param $string
* @return \DOMNodeList
*/
public function query($string)
{
CssSelector::disableHtmlExtension();
$xpathQuery = CssSelector::toXPath($string);
$xpath = new \DOMXPath($this->data);
return $xpath->query($xpathQuery);
}
示例5: testCsstoXPath
public function testCsstoXPath()
{
$this->assertEquals('descendant-or-self::h1', CssSelector::toXPath('h1'));
$this->assertEquals("descendant-or-self::h1[@id = 'foo']", CssSelector::toXPath('h1#foo'));
$this->assertEquals("descendant-or-self::h1[contains(concat(' ', normalize-space(@class), ' '), ' foo ')]", CssSelector::toXPath('h1.foo'));
$this->assertEquals('descendant-or-self::foo:h1', CssSelector::toXPath('foo|h1'));
}
示例6: updateXPathExpression
/**
* Create and update XPath expression
*/
public function updateXPathExpression()
{
if ($this->type === 'css') {
$this->xpath_expression = CssSelector::toXPath($this->selector);
} else {
$this->xpath_expression = $this->selector;
}
}
示例7: execute
protected function execute(InputInterface $input, OutputInterface $output)
{
$selector = $input->getArgument('selector');
/** @var FormatterHelper $formatter */
$formatter = $this->getHelper('formatter');
$block = $formatter->formatBlock(CssSelector::toXPath($selector), 'question', true);
$output->writeln($block);
}
示例8: isCSS
/**
* @param $selector
* @return bool
*/
public static function isCSS($selector)
{
try {
CssSelector::toXPath($selector);
} catch (ParseException $e) {
return false;
}
return true;
}
示例9: html
public function html()
{
$ref = clone $this->_doc;
$xpath = new DOMXPath($ref);
foreach ($xpath->query(CssSelector::toXPath('*[data-domref]')) as $node) {
$node->removeAttribute('data-domref');
}
return $ref->saveHTML();
}
示例10: toXPath
protected static function toXPath($selector)
{
try {
$xpath = CssSelector::toXPath($selector);
} catch (\Symfony\Component\CssSelector\Exception\ParseException $e) {
$xpath = $selector;
}
return $xpath;
}
示例11: assertRows
/**
* Ensures that the rendered results are working as expected.
*
* @param array $expected
* The expected rows of the result.
*/
protected function assertRows($expected = [])
{
$actual = [];
$rows = $this->cssSelect('div.views-row');
foreach ($rows as $row) {
$actual[] = ['title' => (string) $row->xpath(CssSelector::toXPath('.views-field-title span.field-content a'))[0], 'sticky' => (string) $row->xpath(CssSelector::toXPath('.views-field-sticky span.field-content'))[0]];
}
$this->assertEqual($actual, $expected);
}
示例12: testParseExceptions
public function testParseExceptions()
{
try {
CssSelector::toXPath('h1:');
$this->fail('->parse() throws an Exception if the css selector is not valid');
} catch (\Exception $e) {
$this->assertInstanceOf('\\Symfony\\Component\\CssSelector\\Exception\\ParseException', $e, '->parse() throws an Exception if the css selector is not valid');
$this->assertEquals("Expected identifier, but <eof at 3> found.", $e->getMessage(), '->parse() throws an Exception if the css selector is not valid');
}
}
示例13: toXPath
/**
* Metodo que convierte un selector css en un xpath
* @param string $css_selector Cadena de texto con el selector css.
* @return string|NULL Devuelve una cadena de texto con formato xpath si la converción e sposible o NULL en caso contrario.
*/
private function toXPath($css_selector)
{
$xpath = Null;
try {
$xpath = $this->selector->toXPath($css_selector);
} catch (\Exception $e) {
$this->logger->logError('E003', array($css_selector));
$this->logger->logError('E000', array($e->getMessage()));
}
return $xpath;
}
示例14: matches
/**
* Evaluates the constraint for parameter $other. Returns true if the
* constraint is met, false otherwise.
*
* @param mixed $other
* @return bool
*/
public function matches($other)
{
if ($other instanceof DOMElement) {
$xpathSelector = CssSelector::toXPath($this->cssSelector, '//');
$xpath = new DOMXPath($other->ownerDocument);
foreach ($xpath->query($xpathSelector) as $node) {
if ($node === $other) {
return true;
}
}
}
return false;
}
示例15: toXPath
public function toXPath()
{
try {
if (class_exists('Symfony\\Component\\CssSelector\\CssSelectorConverter')) {
$converter = new CssSelectorConverter();
$query = $converter->toXPath($this->selector);
} else {
$query = CssSelector::toXPath($this->selector);
}
} catch (ExceptionInterface $e) {
$query = null;
}
return $query;
}