您還沒有貼上了問題編程語言,但你的代碼看起來非常像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»
_' $ roottag = $ dom->的getElementsByTagName( 「模型」)[0] ...'_ - 是PHP? –