当前位置: 首页 > 知识库问答 >
问题:

查找xml文件的xpath[重复]

祁和通
2023-03-14

我想找到“cost”tag=505.921435631349的元素的路径,我尝试过这样做,我总是有空值,这是我做过的一件事,它或多或少给了我想要的东西,它工作不正常,我将在java中使用这个路径来获得包含特定值的cost tag下面的值

我的xpath问题/解决方案/解决方案[cost='505.9208295302417']/text()请注意,此xml文件是动态的

xml文件

<?xml version="1.0" encoding="UTF-8"?>
<problem xmlns="http://www.w3schools.com"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.w3schools.com vrp_xml_schema.xsd">
     <problemType>
          <fleetSize>FINITE</fleetSize>
     </problemType>
     <vehicles>
          <vehicle>
               <id>1_1</id>
               <typeId>type_1</typeId>
               <startLocation>
                    <id>[x=-20.2675][y=57.4797]</id>
                    <coord x="-20.2675" y="57.4797"/>
               </startLocation>
               <endLocation>
                    <id>[x=-20.2675][y=57.4797]</id>
                    <coord x="-20.2675" y="57.4797"/>
               </endLocation>
               <timeSchedule>
                    <start>0.0</start>
                    <end>1.7976931348623157E308</end>
               </timeSchedule>
               <returnToDepot>true</returnToDepot>
          </vehicle>
          <vehicle>
               <id>1_2</id>
               <typeId>type_1</typeId>
               <startLocation>
                    <id>[x=-20.2675][y=57.4797]</id>
                    <coord x="-20.2675" y="57.4797"/>
               </startLocation>
               <endLocation>
                    <id>[x=-20.2675][y=57.4797]</id>
                    <coord x="-20.2675" y="57.4797"/>
               </endLocation>
               <timeSchedule>
                    <start>0.0</start>
                    <end>1.7976931348623157E308</end>
               </timeSchedule>
               <returnToDepot>true</returnToDepot>
          </vehicle>
          <vehicle>
               <id>2_1</id>
               <typeId>type_2</typeId>
               <startLocation>
                    <id>[x=-20.2675][y=57.4797]</id>
                    <coord x="-20.2675" y="57.4797"/>
               </startLocation>
               <endLocation>
                    <id>[x=-20.2675][y=57.4797]</id>
                    <coord x="-20.2675" y="57.4797"/>
               </endLocation>
               <timeSchedule>
                    <start>0.0</start>
                    <end>1.7976931348623157E308</end>
               </timeSchedule>
               <returnToDepot>true</returnToDepot>
          </vehicle>
          <vehicle>
               <id>3_1</id>
               <typeId>type_3</typeId>
               <startLocation>
                    <id>[x=-20.2675][y=57.4797]</id>
                    <coord x="-20.2675" y="57.4797"/>
               </startLocation>
               <endLocation>
                    <id>[x=-20.2675][y=57.4797]</id>
                    <coord x="-20.2675" y="57.4797"/>
               </endLocation>
               <timeSchedule>
                    <start>0.0</start>
                    <end>1.7976931348623157E308</end>
               </timeSchedule>
               <returnToDepot>true</returnToDepot>
          </vehicle>
     </vehicles>
     <vehicleTypes>
          <type>
               <id>type_1</id>
               <capacity-dimensions>
                    <dimension index="0">120</dimension>
               </capacity-dimensions>
               <costs>
                    <fixed>0.0</fixed>
                    <distance>1.0</distance>
                    <time>0.0</time>
                    <service>0.0</service>
                    <wait>0.0</wait>
               </costs>
          </type>
          <type>
               <id>type_2</id>
               <capacity-dimensions>
                    <dimension index="0">160</dimension>
               </capacity-dimensions>
               <costs>
                    <fixed>0.0</fixed>
                    <distance>1.1</distance>
                    <time>0.0</time>
                    <service>0.0</service>
                    <wait>0.0</wait>
               </costs>
          </type>
          <type>
               <id>type_3</id>
               <capacity-dimensions>
                    <dimension index="0">300</dimension>
               </capacity-dimensions>
               <costs>
                    <fixed>0.0</fixed>
                    <distance>1.3</distance>
                    <time>0.0</time>
                    <service>0.0</service>
                    <wait>0.0</wait>
               </costs>
          </type>
     </vehicleTypes>
     <services>
          <service id="5 " type="service">
               <location>
                    <id>[x=57.49129867553711][y=-20.29949951171875]</id>
                    <coord x="57.49129867553711" y="-20.29949951171875"/>
               </location>
               <capacity-dimensions>
                    <dimension index="0">100</dimension>
               </capacity-dimensions>
               <duration>10.0</duration>
               <timeWindows>
                    <timeWindow>
                         <start>0.0</start>
                         <end>1.7976931348623157E308</end>
                    </timeWindow>
               </timeWindows>
          </service>
          <service id="2 " type="service">
               <location>
                    <id>[x=57.49300003051758][y=-20.298799514770508]</id>
                    <coord x="57.49300003051758" y="-20.298799514770508"/>
               </location>
               <capacity-dimensions>
                    <dimension index="0">20</dimension>
               </capacity-dimensions>
               <duration>10.0</duration>
               <timeWindows>
                    <timeWindow>
                         <start>0.0</start>
                         <end>1.7976931348623157E308</end>
                    </timeWindow>
               </timeWindows>
          </service>
          <service id="1 " type="service">
               <location>
                    <id>[x=57.49380111694336][y=-20.29840087890625]</id>
                    <coord x="57.49380111694336" y="-20.29840087890625"/>
               </location>
               <capacity-dimensions>
                    <dimension index="0">80</dimension>
               </capacity-dimensions>
               <duration>10.0</duration>
               <timeWindows>
                    <timeWindow>
                         <start>0.0</start>
                         <end>1.7976931348623157E308</end>
                    </timeWindow>
               </timeWindows>
          </service>
          <service id="3 " type="service">
               <location>
                    <id>[x=57.49290084838867][y=-20.298200607299805]</id>
                    <coord x="57.49290084838867" y="-20.298200607299805"/>
               </location>
               <capacity-dimensions>
                    <dimension index="0">80</dimension>
               </capacity-dimensions>
               <duration>10.0</duration>
               <timeWindows>
                    <timeWindow>
                         <start>0.0</start>
                         <end>1.7976931348623157E308</end>
                    </timeWindow>
               </timeWindows>
          </service>
          <service id="4 Jean Nicolas Yung" type="service">
               <location>
                    <id>[x=57.49209976196289][y=-20.298599243164062]</id>
                    <coord x="57.49209976196289" y="-20.298599243164062"/>
               </location>
               <capacity-dimensions>
                    <dimension index="0">100</dimension>
               </capacity-dimensions>
               <duration>10.0</duration>
               <timeWindows>
                    <timeWindow>
                         <start>0.0</start>
                         <end>1.7976931348623157E308</end>
                    </timeWindow>
               </timeWindows>
          </service>
     </services>
     <solutions>
          <solution>
               <cost>505.9214355631349</cost>
               <routes>
                    <route>
                         <driverId>noDriver</driverId>
                         <vehicleId>1_1</vehicleId>
                         <start>0.0</start>
                         <act type="service">
                              <serviceId>5 </serviceId>
                              <arrTime>109.9819741964403</arrTime>
                              <endTime>119.9819741964403</endTime>
                         </act>
                         <end>229.9639483928806</end>
                    </route>
                    <route>
                         <driverId>noDriver</driverId>
                         <vehicleId>3_1</vehicleId>
                         <start>0.0</start>
                         <act type="service">
                              <serviceId>2 </serviceId>
                              <arrTime>109.98268205388193</arrTime>
                              <endTime>119.98268205388193</endTime>
                         </act>
                         <act type="service">
                              <serviceId>1 </serviceId>
                              <arrTime>119.98357684436793</arrTime>
                              <endTime>129.98357684436792</endTime>
                         </act>
                         <act type="service">
                              <serviceId>3 </serviceId>
                              <arrTime>129.98449911991617</arrTime>
                              <endTime>139.98449911991617</endTime>
                         </act>
                         <act type="service">
                              <serviceId>4 Jean Nicolas Yung</serviceId>
                              <arrTime>139.98539391040217</arrTime>
                              <endTime>149.98539391040217</endTime>
                         </act>
                         <end>259.9672978232725</end>
                    </route>
               </routes>
          </solution>
          <solution>
               <cost>505.9208295302417</cost>
               <routes>
                    <route>
                         <driverId>noDriver</driverId>
                         <vehicleId>1_1</vehicleId>
                         <start>0.0</start>
                         <act type="service">
                              <serviceId>5 </serviceId>
                              <arrTime>109.9819741964403</arrTime>
                              <endTime>119.9819741964403</endTime>
                         </act>
                         <end>229.9639483928806</end>
                    </route>
                    <route>
                         <driverId>noDriver</driverId>
                         <vehicleId>3_1</vehicleId>
                         <start>0.0</start>
                         <act type="service">
                              <serviceId>4 Jean Nicolas Yung</serviceId>
                              <arrTime>109.98190391287031</arrTime>
                              <endTime>119.98190391287031</endTime>
                         </act>
                         <act type="service">
                              <serviceId>2 </serviceId>
                              <arrTime>119.98282618841856</arrTime>
                              <endTime>129.98282618841856</endTime>
                         </act>
                         <act type="service">
                              <serviceId>1 </serviceId>
                              <arrTime>129.98372097890456</arrTime>
                              <endTime>139.98372097890456</endTime>
                         </act>
                         <act type="service">
                              <serviceId>3 </serviceId>
                              <arrTime>139.9846432544528</arrTime>
                              <endTime>149.9846432544528</endTime>
                         </act>
                         <end>259.9668316441239</end>
                    </route>
               </routes>
          </solution>
     </solutions>
</problem>

共有1个答案

长孙嘉
2023-03-14

我不知道你到底在找什么,但你可以试试这个:

/*:problem/*:solutions/*:solution[*:cost/text()="505.9208295302417"]

您的XML正在使用默认名称空间。简单的方法是使用通配符*:,但一般来说,最好声明一个名称空间并相应地使用它。

这将搜索解决方案,其中嵌入的

 类似资料:
  • 问题内容: 我在JAVA项目中将XPATH 1.0解析器与CLiXML一起使用,我试图设置CLiXML约束规则文件。 如果特定子项下的元素名称重复,我想显示一个错误。 例如 childA出现不止一次,因此我将显示一个错误。 注意:我只想“检查/计数”元素名称,而不是元素内部的属性或元素的子元素。 我尝试过的.clx规则文件中的代码是: 但这不起作用,我得到了错误: 因为我希望代码检查每个子名称,并

  • 问题内容: 作为Java 6应用程序的一部分,我想在XML文档中找到所有名称空间声明,包括所有重复项。 编辑 :根据马丁的要求,这是我正在使用的Java代码: 假设我有这个XML文档: 为了找到所有名称空间声明,我 使用xPath 1.0 将此xPath语句应用于XML文档: 它找到4个名称空间声明,这是我期望的(和期望的): 但是,如果我 改用xPath 2.0 ,则会得到16个名称空间声明(每

  • 错误:NoSuChelementException:没有这样的元素:无法定位元素:{“method”:“xpath”,“selector”:“//td[@class='c($PrimaryColor)W(51%)']”}(会话信息:chrome=77.0.3865.120) 我的代码如下: 这是我试图从“https://finance.yahoo.com/quote/goog?p=goog”中搜索

  • 我正在构建一个应用程序,它将从用户那里提取一个单词,然后使用XPath扫描文件,根据文件中是否找到该单词返回true或false。 我已经构建了以下实现XPath的类,但我要么误解了它应该如何工作,要么我的代码有问题。有人能给我解释一下如何使用Xpath进行完整的文件搜索吗? 以及我目前正在测试的xml文件。 找到解决方案后,我丢失了找到的条目的正确显示,正如有人在注释“java”中指出的那样,我

  • 我想选择一个特定的元素: 我得到了这个错误: 线程“main”组织中出现异常。阿帕奇。火花sql。AnalysisException:无法解析文件。柱。列[_name]'由于数据类型不匹配:参数2需要整数类型,但“_name”是字符串类型。;在org。阿帕奇。火花sql。催化剂分析套餐$AnalysisErrorAt。组织的故障分析(scala包:42)。阿帕奇。火花sql。催化剂分析检查分析$$

  • 主要内容:Java XPath解析器 查询XML文档的示例Java XPath解析器 查询XML文档的示例 需要解析的文件input.xml 编写Java XPath解析器 查询XML文档的程序 输出结果为: