2016-12-18 34 views
0

如何獲得價值type ='Microsoft Lumia'。 這是輸出:如何從實體元素獲取價值

<phone> 
<model type="Microsoft Lumia"> 
<lumia id="Lumia 650"> 
<displaySize>4 Inch</displaySize> 
<platformOS>Windows</platformOS> 
</lumia> 
<lumia id="Lumia 890"> 
<displaySize>5 Inch</displaySize> 
<platformOS>Windows</platformOS> 
</lumia> 

這是我的語法:

$roottag = $dom->getElementsByTagName("model")[0].getAttribute("type[contain='Microsoft Lumia']"); 

有人可以幫我!在此先感謝

+0

_' $ roottag = $ dom->的getElementsByTagName( 「模型」)[0] ...'_ - 是PHP? –

回答

0

您還沒有貼上了問題編程語言,但你的代碼看起來非常像PHP使用DOM extension

$roottag = $dom->getElementsByTagName("model")[0].getAttribute("type[contain='Microsoft Lumia']"); 

如果我的理解正確,問題是您不知道如何獲取具有type屬性的model元素,其值包含'Microsoft Lumia'字符串。這很容易用下面的XPath表達式來完成:

//model[contains(@type, 'Microsoft Lumia')] 

雙斜線選擇文檔中的所有model元素。方括號中的條件過濾掉由測試調用contains函數設置的結果集。該功能檢查type屬性值是否包含給定的關鍵字。

幸運的是,DOM擴展支持XPath通過其DOMXPath類。如果你的代碼不是PHP,你仍然可以用你的語言找出解決方案。總體思路是使用XPath,如上所示。

實施例在PHP

下面的例子打印含有Lumia關鍵字type屬性值。

$xml = <<<'XML' 
<phone> 
    <model type="Microsoft Lumia"> 
    <lumia id="Lumia 650"> 
     <displaySize>4 Inch</displaySize> 
     <platformOS>Windows</platformOS> 
    </lumia> 
    <lumia id="Lumia 890"> 
     <displaySize>5 Inch</displaySize> 
     <platformOS>Windows</platformOS> 
    </lumia> 
    </model> 
    <model type="MS Lumia"> 
    <lumia id="X"> 
     <displaySize>5 Inch</displaySize> 
     <platformOS>Windows</platformOS> 
    </lumia> 
    </model> 
</phone> 
XML; 
$doc = new DOMDocument; 
$doc->loadXML($xml); 

$xpath = new DOMXPath($doc); 
// See https://www.w3.org/TR/xpath/#function-contains 
$keyword = 'Lumia'; 
$models = $xpath->query("//model[contains(@type, '{$keyword}')]"); 
foreach ($models as $m) { 
    printf(
    "«%s» contains «%s»\n", 
    $m->getAttribute('type'), 
    $keyword 
); 
} 

輸出

«Microsoft Lumia» contains «Lumia» 
«MS Lumia» contains «Lumia» 
+0

$ roottag = $ dom-> getElementsByTagName(「model」)[0]; //。getAttribute(「type [contains ='Microsoft Lumia']」); $ tolol = $ roottag-> getAttribute(「type [contains ='Microsoft Lumia']」); – Akmal

+0

非常感謝你:)願上帝保佑你。以上是解決方案:D – Akmal

0

你可以得到 '微軟Lumia':

alert(document.getElementsByTagName("model")[0].getAttribute("type")); 

更新部分: 在評論你的要求:

var d = document.getElementsByTagName("model")[0].getAttribute("type"); 
    if(d == 'Microsoft Lumia'){ 
    alert(d); 
} 
+0

但如果我想==「微軟Lumia」的東西呢?對不起,我在這方面太新手了。 – Akmal

+0

更新了答案! – mohsen