2013-12-18 45 views
1

我需要遍历以下XML树,以便找到字形,其中unicode=查找属性为Unicode字符串作为价值

<?xml version="1.0" standalone="no"?> 
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" 
      "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" > 
<svg xmlns="http://www.w3.org/2000/svg"> 
    <font> 
     <glyph unicode="&#xf0c5;"/> 
     <glyph unicode="&#xf005;"/> 
    </font> 
</svg> 

我怎样才能做到这一点使用jQuery?

编辑

也许这是不明确的,但我希望通过自己的价值观下unicode标签访问字形,因为大多数这些打印的字符将在结束。

我知道,这是布莱恩工作$('svg').find('glyph[unicode=""]'),但有:

if (cond1) { 
    $('svg').find('glyph[unicode=""]'); 
} else if (cond2) { 
    $('svg').find('glyph[unicode=""]'); 
} else { 
    // ... 
} 

..是你永远要保持的东西。

+0

更新了答案,找到了另一个方法 – Anton

+1

我认为切割'&#x'和';'并留下字符串的有意义的部分是一个负担得起的折衷,谢谢:) –

回答

3

这样的事情?

$( 'SVG')。找到( '字形[unicode的=” &#xf0c5" ]')

更新

我看到DOM改变后加载,所以你已经后搜寻,因此尝试这种

$('svg').find('glyph[unicode=""]') 

更新

,可随时更换& #X到\ u和使用选择这样

&#xf0c5;==\uf0c5 //hex to Escaped Unicode 
&#xf005;==\uf005 

所以对字形的选择将是

if (cond1) { 
    $('svg').find('glyph[unicode="\uf0c5"]'); 
} else if (cond2) { 
    $('svg').find('glyph[unicode="\uf005 "]'); 
} else { 
    // ... 
} 

注:你不需要更新html

DEMO

+0

我想你是猜测。这不起作用。你试过了吗? –

+0

@akoskm啊我检查了控制台,看到dom准备好后属性发生了变化。所以我试了这个,它实际上工作:P'console.log($('svg')。find('glyph [unicode =“”]')。attr('unicode'))** ** DEMO:** http://jsfiddle.net/G8LPz/ – Anton

+0

如果我有750x,如果我想要'&#xf0c5;',我的选择器应该如何在我的代码中显示?或者'&#xf005;',第一次'find('glyph [unicode =“”]')',第二次'find('glyph [unicode =“”]')'? :) –