Tag: xpath

在使用Xpath时,我怎样才能得到节点的string值的一部分?

这是我的代码 <details> <detail status="ok"> <elapsed>0</elapsed> <msg>Order successfully created. Order number is [100000017389]</msg> </detail> </details> 这是我从testing输出获得的代码的一部分。 我想获得“[10000017389]”值,每次产生testing输出时,值都不相同,而“订单成功创build,订单号为”值总是恒定的。 所以,如果我仔细说明这一点..我把string值分成两部分。 第1部分 =“订单成功创build,订单号为” 第2部分 =“[10000017389]” 现在我的问题是,当我想使用第1部分来获取第2 部分时,我的Xpath语法将如何?

在尝试添加xpath断言时在groovy脚本中出错

我正在尝试执行下面的代码时遇到下面的exception: 缺less属性exception groovy脚本中的代码将xpath断言添加到testing用例中。 有没有可能的解决scheme来解决这个错误? 它的testing套件名称为“ManagePostpayInsurance_1_0”,testing步骤名称为“getInsuranceDetails_1_FTC_005”。 log.info("Testing Start") TSName = "ManagePostpayInsurance_1_0" StepName = "getInsuranceDetails_1_FTC_005" project.getTestSuiteList().each { if(it.name == TSName) { TS = it.name it.getTestCaseList().each { TC =it.name def asserting = project.getTestSuiteByName(TS).getTestCaseByName(TC).getTestStepByName(StepName).getAssertionByName("XPath Match") if (asserting instanceof com.eviware.soapui.impl.wsdl.teststeps.assertions.basic.XPathContainsAssertion) { project.getTestSuiteByName(TS).getTestCaseByName(TC)getTestStepByName(StepName).removeAssertion(asserting) } def assertion = project.getTestSuiteByName(TS).getTestCaseByName(TC)getTestStepByName(StepName).addAssertion("XPath Match") assertion.path = "declare namespace cor='http://soa.o2.co.uk/coredata_1';\ndeclare namespace man='http://soa.o2.co.uk/managepostpayinsurancedata_1';\ndeclare namespace soapenv='http://schemas.xmlsoap.org/soap/envelope/';\n" assertion.expectedContent = "200" […]

VBAparsingdom来find一个特定的href值

使用Excel VBA,由于所有法语版本的URL都在.xls文件中,因此我必须从同一站点的英文版本中find大约400个URL。 知道该网站的dom结构,我知道我可以: 打开网页(MSXML2.XMLHTTP) 在网页的标题中search一个特定的链接。 使用户能够切换语言的链接。 在那个链接(href)下,我将能够find英文链接,这就是我所需要的。 之后,我将设法将该结果复制到工作表中的相应单元格中。 结构是这样的。 “英语”链接改变,但始终在这种结构下: <ul class="global-links"> <li><a title="Nous joindre" href="/fr/coordonnees.html">Nous Joindre</a></li> <li>|</li> <li><a title="Carrières" href="/fr/carrieres.html">Carrières</a></li> <li>|</li> <li><a title="English" href="/en/personal.html">English</a></li> </ul> 我想要的href是链接上的标题为“英语”的那个。 如果我卡住了,我知道有两种方法可以find相关的文本 getElement …(直接parsingDOM) inStr(string操作) 我设法testing他们两个但是: 操纵DOM:我本来以为下面的工作会有效果,但是根本不会,而且会给我一个438的错误。 另外,我不明白是否有可能将href作为标题(因为没有特殊的类或id) .getElementsByClassName( “全球通”)。innerText属性 所以我改变了instr方法(操纵位置做一个MID之后…我寻找 InStr(1,htm.body.innerHTML,“title =”“English”“href =”) 由于双引号,我无法构build我想要以良好方式search的string。 我试图加倍双引号。 我也试过像这样的chr(34)方法 "title=" & Chr(34) & "English" & Chr(34) & " href=" & Chr(34) […]

在excel vba中实现HTMLBaseElement

我需要使用它的xpath从html代码中获取元素。 我正在使用“标准编码function” Public Function getXPathElement(sXPath As String, objElement As Object) As HTMLBaseElement Dim sXPathArray() As String Dim sNodeName As String Dim sNodeNameIndex As String Dim sRestOfXPath As String Dim lNodeIndex As Long Dim lCount As Long ' Split the xpath statement sXPathArray = Split(sXPath, "/") sNodeNameIndex = sXPathArray(1) If Not InStr(sNodeNameIndex, "[") > 0 Then […]

如何使用xpath从html中提取数据

我试图从Google电子表格的Google购物中 提取产品价格 : =IMPORTXML("https://www.google.com.br/?source=pshome-c-0-3&sa=X&ved=0ahUKEwjfguD5xaHKAhXMiZAKHWjuBi8Q7j8IEA#tbm=shop&q=Samsung+Galaxy+S6&spd=0";"/div[@class='product-results']/div[@class='psli'][2]/div[@class='pslicont']/div[@class='pslmain']/div[@class='pslline'][1]/div[@class='_tyb shop__secondary']/span[@class='price']/b") 我的xpath查询是: /div[@class='product-results']/div[@class='psli'][2]/div[@class='pslicont']/div[@class='pslmain']/div[@class='pslline'][1]/div[@class='_tyb shop__secondary']/span[@class='price']/b 但是我没有结果。 怎么了? Google购物的HTML

我怎么知道在节点上使用我的选项(方法或属性)是什么

一个小的虚拟问题,对不起,我没有find任何关于它的参考。 我怎么能知道什么是我得到的variables'el'的选项,我的意思是我可以在'el'上激活哪种方法,例如我知道我可以使用方法“getAttribute(”….“)”,但还有什么还有哪些方法或属性我可以使用? 注意:在这种情况下,Ctrl +空格不起作用。 我发现这个链接,但它与vba无关https://msdn.microsoft.com/en-us/library/ms757828(v=vs.85).aspx VBA: Dim oDoc As New MSXML2.DOMDocument30 Dim el As Object Dim XML As String XML =("C:\……..") oDoc.validateOnParse = True oDoc.Load XML dim Name as String Name= "yaron" 'select the User node with Name="Yaron" Set el = oDoc.SelectSingleNode("/GetUserInfo/User[@Name='" & Name & "']") 'e. ???????whats my options? If Not el Is Nothing […]

在不知道模式XPath的情况下,自动将Excel XmlMap映射到VBA中的工作表

我正在构build一个从API下载的Excel文件。 它可以从URL模式元数据中自动生成XmlMap。 然而,然后我需要将XmlMap元素映射到ListObjects为了拉动数据并放在工作表上。 执行此操作的代码是range.Xpath.SetValue map xPath为每个项目(来自MSDN ) range.Xpath.SetValue map xPath : Sub CreateXMLList() Dim mapContact As XmlMap Dim strXPath As String Dim lstContacts As ListObject Dim objNewCol As ListColumn ' Specify the schema map to use. Set mapContact = ActiveWorkbook.XmlMaps("Contacts") ' Create a new list. Set lstContacts = ActiveSheet.ListObjects.Add ' Specify the first element to […]

从xml文件中提取值并将其写入Excel表格中

我有一个情况在这里,我必须编写一个简单的WPF应用程序与一个文本框和一个button,文本框是“en”,“fr”,“ru”等… 我有很多像这样的大量数据的文件。 考虑这是一个文件 <?xml version="1.0" encoding="UTF-8"?> <params> <btestsir xml:lang="fr" tId="HHXAF">Test Sirène :</btestsir> <btestsir xml:lang="en" tId="HHXAF">Test Siren :</btestsir> <btestsir xml:lang="pt" tId="HHXAF">Testar sirene:</btestsir> <btestsir xml:lang="ru" tId="HHXAF">Тест сирены:</btestsir> <btestbeep xml:lang="fr" tId="HHXA2">Test Bip :</btestbeep> <btestbeep xml:lang="en" tId="HHXA2">Test Beep :</btestbeep> <btestbeep xml:lang="pt" tId="HHXA2">Testar aviso sonoro:</btestbeep> <btestbeep xml:lang="ru" tId="HHXA2">Тест гудка:</btestbeep> </params> 现在,如果我通过我的应用程序select“en”,然后单击button,那么只有xml:lang =“en”值匹配的两个string将被复制到Excel表格中。 并会显示这样的东西。 For English language For Russian language 我已经试过了 […]

任何开源工具或Excelmacros从xml中提取xpath的列表?

基本上我想能够指定一个XML或2像这样(如果你可以select一个文件夹,它会抓住所有的XML文件): Xml 1: <Client> <LastName>Bill</LastName> <FirstName>Gates</FirstName> <MiddleName/> <Suffix/> <DateOfBirth>30-May-1968</DateOfBirth> <PlaceOfBirth/> <SSN>n/a</SSN> <Gender>Male</Gender> <District> <City>SHELTON</City> <Mayor>wong</Mayor> </District> <State>WA</State> <Zip>96484</Zip> </Client> Xml 2: <Client> <LastName>Warron</LastName> <FirstName>Buffet</FirstName> <MiddleName>P</MiddleName> <Suffix/> <DateOfBirth>12-Aug-1957</DateOfBirth> <PlaceOfBirth>Mississippi</PlaceOfBirth> <SSN>n/a</SSN> <Gender>Male</Gender> <City>Missi</City> <State>KS</State> <Account> <Type> <Name>Cash</Name> <Currency>USD</Currency> <Country>USA</Country> </Type> </Account> <Zip>66096</Zip> </Client> 然后在excel表格(即'Xpaths')的列A中放置xpath列表,例如: /Client/DateOfBirth /Client/Account/Type/Name /Client/Zip /Client/District/City 期望的行为:在一个新的excel工作表(即“结果”)的表格中接收结果,列表如下: /Client/DateOfBirth /Client/Account/Type/Name /Client/Zip /Client/District/City —————- ———————— ———— ——————– […]

如何在导入之前过滤XML /将其链接到Excel中的地图

如何在导入之前过滤XML /将其链接到Excel中的地图 我想过滤一个XML到一个logging然后通过链接到地图导入logging到Excel。 现在我只能做到以下几点: 使用XPathexpression式将节点过滤为IXMLDOMNode 获取节点的xmlstring 用根节点标签扩展string 使用.ImportXml(…)将string分配给映射 我不知道是否有一个更简单的方法来做到这一点,特别是第3步(扩展string)似乎有点复杂。 备注:示例xml取自“Excel 2007 VBA程序员参考”。 提前谢谢了 安德烈 VBA代码: Sub FilterNode() Dim oXmlDoc As DOMDocument60 Dim oXmlNode As IXMLDOMNode Dim strXml As String Dim oMap As XmlMap 'Filter xml Set oXmlDoc = New DOMDocument60 oXmlDoc.async = False oXmlDoc.Load (ThisWorkbook.Path & "\EmployeeSales.xml") Set oXmlNode = oXmlDoc.SelectSingleNode("//Employee[Empid=24601]") strXml = oXmlNode.XML 'Extend […]