2016-04-24 145 views
3

實際上,我正在嘗試使用Google Maps JavaScript API來從我的數據庫生成特定的標記,以便以自動完成形式使用它。 我無法將我的標記保存在Google地方信息中,因爲它們的數量太多了,它們不會真正適合所有人!但是,Google並不知道我所有的地方,所以無法對其進行地理編碼。 我決定用我的標記生成一個XML文件;這裏是一個示例:如何搜索XML中的特定屬性以檢索另一個屬性?

<?xml version="1.0"?> 
<markers> 
    <marker name="Pan Africa Market" address="1521 1st Ave, Seattle, WA" lat="47.608940" lng="-122.340141" type="restaurant"/> 
    <marker name="Buddha Thai &amp; Bar" address="2222 2nd Ave, Seattle, WA" lat="47.613590" lng="-122.344391" type="bar"/> 
    <marker name="The Melting Pot" address="14 Mercer St, Seattle, WA" lat="47.624561" lng="-122.356445" type="restaurant"/> 
    <marker name="Ipanema Grill" address="1225 1st Ave, Seattle, WA" lat="47.606365" lng="-122.337654" type="restaurant"/> 
    <marker name="Sake House" address="2230 1st Ave, Seattle, WA" lat="47.612823" lng="-122.345673" type="bar"/> 
    <marker name="Crab Pot" address="1301 Alaskan Way, Seattle, WA" lat="47.605961" lng="-122.340363" type="restaurant"/> 
    <marker name="Mama's Mexican Kitchen" address="2234 2nd Ave, Seattle, WA" lat="47.613976" lng="-122.345467" type="bar"/> 
    <marker name="Wingdome" address="1416 E Olive Way, Seattle, WA" lat="47.617214" lng="-122.326584" type="bar"/> 
    <marker name="Piroshky Piroshky" address="1908 Pike pl, Seattle, WA" lat="47.610126" lng="-122.342834" type="restaurant"/> 
</markers> 

我如何使用JavaScript,以便檢索特定名稱屬性latlng屬性?

回答

1

您可以使用以下XPath表達式:

  • /markers/marker[@name='Crab Pot']/@lng

  • /markers/marker[@name='Crab Pot']/@lat

從Chrome開發人員工具:

$x("/markers/marker[@name='Crab Pot']/@lat") 

或以編程方式使用Document.evaluate()在JavaScript:

console.log(document.evaluate("/markers/marker[@name='Crab Pot']/@lat", 
      document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, 
      null).singleNodeValue); 
+0

謝謝你,真的有用 – Yvo