2015-08-25 157 views
0

這裏是我讀的XML:遇到一些麻煩XPATH

<?xml version="1.0" encoding="UTF-8"?> 

<ns10:UtilityData xmlns:ns10="http://www.SDMX.org/resources/SDMXML/schemas/v1_0/message" xmlns="http://www.newyorkfed.org/xml/schemas/RateBase/utility" xmlns:ns11="http://www.SDMX.org/resources/SDMXML/schemas/v1_0/cross" xmlns:ns12="http://www.SDMX.org/resources/SDMXML/schemas/v1_0/compact" xmlns:ns13="http://www.SDMX.org/resources/SDMXML/schemas/v1_0/structure" xmlns:ns14="http://www.SDMX.org/resources/SDMXML/schemas/v1_0/utility" xmlns:ns15="http://www.SDMX.org/resources/SDMXML/schemas/v1_0/query" xmlns:ns16="http://rpc.xml.coldfusion" xmlns:ns2="http://www.newyorkfed.org/xml/schemas/FFBase/utility" xmlns:ns3="http://www.newyorkfed.org/xml/schemas/FF/utility" xmlns:ns4="http://www.newyorkfed.org/xml/schemas/FFMetadata/utility" xmlns:ns5="http://www.newyorkfed.org/xml/schemas/FFMethod/utility" xmlns:ns6="http://www.newyorkfed.org/xml/schemas/FFRange/utility" xmlns:ns7="http://www.newyorkfed.org/xml/schemas/FFTarget/utility" xmlns:ns8="http://www.SDMX.org/resources/SDMXML/schemas/v1_0/common" xmlns:ns9="http://www.SDMX.org/resources/SDMXML/schemas/v1_0/generic"> 
    <ns10:Header>...</ns10:Header> 
    <DataSet> 
    <Series xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" AVAILABILITY="A" DECIMALS="2" DISCLAIMER="G" FF_METHOD="D" TIME_FORMAT="P1D" xsi:type="ns5:SeriesType"> 
     <ns6:Key> 
     <FREQ>D</FREQ> 
     <RATE>FF</RATE> 
     <MATURITY>O</MATURITY> 
     <ns2:FF_SCOPE>D</ns2:FF_SCOPE> 
     </ns6:Key> 
     <ns3:Obs OBS_CONF="F" OBS_STATUS="A"> 
     <TIME_PERIOD>2015-08-24</TIME_PERIOD> 
     <OBS_VALUE>0.15</OBS_VALUE> 
     </ns3:Obs> 
     <ns3:Obs OBS_CONF="F" OBS_STATUS="A"> 
     <TIME_PERIOD>2015-08-21</TIME_PERIOD> 
     <OBS_VALUE>0.15</OBS_VALUE> 
     </ns3:Obs> 
     <ns3:Obs OBS_CONF="F" OBS_STATUS="A"> 
     <TIME_PERIOD>2015-08-20</TIME_PERIOD> 
     <OBS_VALUE>0.15</OBS_VALUE> 
     </ns3:Obs> 
     <ns3:Obs LAST_DAY_OF_MAINTENANCE_PERIOD="true" OBS_CONF="F" OBS_STATUS="A"> 
     <TIME_PERIOD>2015-08-19</TIME_PERIOD> 
     <OBS_VALUE>0.15</OBS_VALUE> 
     </ns3:Obs> 
     <ns3:Obs OBS_CONF="F" OBS_STATUS="A"> 
     <TIME_PERIOD>2015-08-18</TIME_PERIOD> 
     <OBS_VALUE>0.15</OBS_VALUE> 
     </ns3:Obs> 
     <ns3:Obs OBS_CONF="F" OBS_STATUS="A"> 
     <TIME_PERIOD>2015-08-17</TIME_PERIOD> 
     <OBS_VALUE>0.15</OBS_VALUE> 
     </ns3:Obs> 
     <ns3:Obs OBS_CONF="F" OBS_STATUS="A"> 
     <TIME_PERIOD>2015-08-14</TIME_PERIOD> 
     <OBS_VALUE>0.14</OBS_VALUE> 
     </ns3:Obs> 
     <ns3:Obs OBS_CONF="F" OBS_STATUS="A"> 
     <TIME_PERIOD>2015-08-13</TIME_PERIOD> 
     <OBS_VALUE>0.15</OBS_VALUE> 
     </ns3:Obs> 
     <ns3:Obs OBS_CONF="F" OBS_STATUS="A"> 
     <TIME_PERIOD>2015-08-12</TIME_PERIOD> 
     <OBS_VALUE>0.15</OBS_VALUE> 
     </ns3:Obs> 
     <ns3:Obs OBS_CONF="F" OBS_STATUS="A"> 
     <TIME_PERIOD>2015-08-11</TIME_PERIOD> 
     <OBS_VALUE>0.15</OBS_VALUE> 
     </ns3:Obs> 
     <ns3:Obs OBS_CONF="F" OBS_STATUS="A"> 
     <TIME_PERIOD>2015-08-10</TIME_PERIOD> 
     <OBS_VALUE>0.14</OBS_VALUE> 
     </ns3:Obs> 
     <ns3:Obs OBS_CONF="F" OBS_STATUS="A"> 
     <TIME_PERIOD>2015-08-07</TIME_PERIOD> 
     <OBS_VALUE>0.14</OBS_VALUE> 
     </ns3:Obs> 
     <ns3:Obs OBS_CONF="F" OBS_STATUS="A"> 
     <TIME_PERIOD>2015-08-06</TIME_PERIOD> 
     <OBS_VALUE>0.14</OBS_VALUE> 
     </ns3:Obs> 
     <ns3:Obs LAST_DAY_OF_MAINTENANCE_PERIOD="true" OBS_CONF="F" OBS_STATUS="A"> 
     <TIME_PERIOD>2015-08-05</TIME_PERIOD> 
     <OBS_VALUE>0.14</OBS_VALUE> 
     </ns3:Obs> 
     <ns3:Obs OBS_CONF="F" OBS_STATUS="A"> 
     <TIME_PERIOD>2015-08-04</TIME_PERIOD> 
     <OBS_VALUE>0.14</OBS_VALUE> 
     </ns3:Obs> 
     <ns3:Obs OBS_CONF="F" OBS_STATUS="A"> 
     <TIME_PERIOD>2015-08-03</TIME_PERIOD> 
     <OBS_VALUE>0.14</OBS_VALUE> 
     </ns3:Obs> 
     <ns3:Obs OBS_CONF="F" OBS_STATUS="A"> 
     <TIME_PERIOD>2015-07-31</TIME_PERIOD> 
     <OBS_VALUE>0.08</OBS_VALUE> 
     </ns3:Obs> 
     <ns3:Obs OBS_CONF="F" OBS_STATUS="A"> 
     <TIME_PERIOD>2015-07-30</TIME_PERIOD> 
     <OBS_VALUE>0.14</OBS_VALUE> 
     </ns3:Obs> 
     <ns3:Obs OBS_CONF="F" OBS_STATUS="A"> 
     <TIME_PERIOD>2015-07-29</TIME_PERIOD> 
     <OBS_VALUE>0.14</OBS_VALUE> 
     </ns3:Obs> 
     <ns3:Obs OBS_CONF="F" OBS_STATUS="A"> 
     <TIME_PERIOD>2015-07-28</TIME_PERIOD> 
     <OBS_VALUE>0.14</OBS_VALUE> 
     </ns3:Obs> 
     <ns3:Obs OBS_CONF="F" OBS_STATUS="A"> 
     <TIME_PERIOD>2015-07-27</TIME_PERIOD> 
     <OBS_VALUE>0.14</OBS_VALUE> 
     </ns3:Obs> 
     <ns3:Obs OBS_CONF="F" OBS_STATUS="A"> 
     <TIME_PERIOD>2015-07-24</TIME_PERIOD> 
     <OBS_VALUE>0.13</OBS_VALUE> 
     </ns3:Obs> 
     <ns3:Obs OBS_CONF="F" OBS_STATUS="A"> 
     <TIME_PERIOD>2015-07-23</TIME_PERIOD> 
     <OBS_VALUE>0.13</OBS_VALUE> 
     </ns3:Obs> 
     <ns3:Obs LAST_DAY_OF_MAINTENANCE_PERIOD="true" OBS_CONF="F" OBS_STATUS="A"> 
     <TIME_PERIOD>2015-07-22</TIME_PERIOD> 
     <OBS_VALUE>0.13</OBS_VALUE> 
     </ns3:Obs> 
     <ns3:Obs OBS_CONF="F" OBS_STATUS="A"> 
     <TIME_PERIOD>2015-07-21</TIME_PERIOD> 
     <OBS_VALUE>0.13</OBS_VALUE> 
     </ns3:Obs> 
    </Series> 
    </DataSet> 
</ns10:UtilityData> 

我要的是個人對「TIME_PERIOD」和「OBS_VALUE」,它代表一個日期和值(如圖) 。

我一直使用在線XPATH測試,並獲得這樣做的時候沒有結果「/ NS10:UtilityData /數據集」 - 我認爲會下返回整個結構。

應該正確的XPATH是什麼樣子?

+2

在線的XPath測試人員通常不與設置默認命名空間的文檔工作得很好,因爲你用'的xmlns =「HTTP都://www.newyorkfed .ORG/XML /模式/費率基礎/實用程序「'在根元素。這使'DataSet'到命名空間,你的XPath正在尋找一個沒有命名空間'DataSet'。 – bjimba

+0

它看起來像有這個文件中定義的約16不同的命名空間。有沒有簡單的方法到達我想要的節點而不處理這些節點?我將在C#中執行此操作。 – slandau

回答

1

嘗試指定與namespace-uri命名空間:

//*[local-name()='Obs' and namespace-uri()='http://www.newyorkfed.org/xml/schemas/FF/utility'] 
+0

這工作完美! – slandau