2015-08-25 236 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