Tag: xpath

使用XPath Java在Tag内部读取

Hye我是新手阅读使用Java的XML文件我的问题是我一直在尝试读取xml和特定标签之间我想获取所需的数据我使用的是XPath,我的查询是: String expression = “/ADOXML/MODELS/MODEL/MODELATTRIBUTES/ATTRIBUTE[@type=’STRING’]”; 它工作正常,我的特定标签是: SOME TEXT 但我想只读取这些类型的标签内的数据,以便我的输出应该是: SOME TEXT 在标签里面! 有人可以帮我,我怎么能这样做请xml阅读新手! 尽我所能: String expression = “/ADOXML/MODELS/MODEL/MODELATTRIBUTES/ATTRIBUTE[@name=’Description’ and ./type/text()=’STRING’]”; 但它不会给我任何输出! 提前致谢 我的代码: DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = null; try { builder = builderFactory.newDocumentBuilder(); org.w3c.dom.Document document = builder.parse( new FileInputStream(“c:\\y.xml”)); XPath xPath = XPathFactory.newInstance().newXPath(); String expression = “/ADOXML/MODELS/MODEL/MODELATTRIBUTES/ATTRIBUTE[@name=’Description’and @type=’STRING’]”; System.out.println(expression); NodeList nodeList = […]

selenium:使用cssSelector看不到元素,而使用xpath可见

我试过java代码: driver.findElement(By.cssSelector(“input.only-numbers.ltr”)).sendKeys(“111”); 我收到一个错误: 线程“main”中的exceptionorg.openqa.selenium.ElementNotVisibleException:元素不可见 但当我将代码更改为xpath时,这项工作就完美了 driver.findElement(By.xpath(“html/body/section[10]/div/div[2]/form/div[1]/input”)).sendKeys(“111”); HTML代码: איפוס סיסמה תעודת זהות 为什么会发生这种情况?如何使用cssSelector修复?

使用webdriver找不到元素

有一个网络元素: A B 因为它有onchange ,我无法选择该选项。 我的代码是这样的: new Select(driver.findElement(By.id(“sel”))).selectByValue(“1”); 但它无法奏效。 是否有可能使它工作?

Selenium 2:以编程方式查找Web元素定位符

我厌倦了从我的网页源手动查找网页元素的定位器(id,xpath,css,linkText等..)。 它也消耗更多的努力。 所以,为了避免我想编写一个直接与页面源交互并生成定位器详细信息的代码(例如id =“xyz”,xpath =“html / body / table / tr / td / a”等)来实现这一点,我想我可以通过使用String对象的split()函数生成ID定位器。 但是,我不知道如何为所有页面组件生成xpaths,css和linkText定位器? 任何人都可以帮我这个吗?

如何在命令行中使用带有Saxon-HE的XPath解析HTML?

我使用saxon HE 9.6,它非常适合在解析格式良好的XML文件时使用XPath 3。 但我想知道如何将expath-http-client (或任何其他工作解决方案)与Saxon结合起来, 以便能够解析realLife©®™(可能已损坏)的HTML。 (Java不是我更好的技能)。 我搜索谷歌很多小时没有任何工作解决方案。 我试过类似的东西: xquery_file.xsl: xquery version “1.0”; declare namespace http=”http://expath.org/ns/http-client”; let $url := ‘http://stackoverflow.com’ let $response := http:send-request( ) return {$response} Shell命令取自expath-http-client-saxon-0.10.0的README saxon –repo /usr/share/java/expath/repo -xsl:sample/simple-get.xsl -it:main 要么 saxon –repo /usr/share/java/expath/repo -xsl:xquery_file.xsl -it:main 没有成功。 我得到: Transformation failed: Unknown configuration property http://saxon.sf.net/feature/repo 理想情况下,我最后要做的是直接从命令行查询一个URL,而不是XQuery文件,而是一个XPath表达式(如果可能的话)。 我很确定那里的一些XML / Java / XPath专家有我正在寻找的解决方案。 /usr/share/java/expath/repo包含: […]

使用java删除XML中的重复项的小问题

这是示例XML: 23 23 这是我写的java代码,它找到重复的元素(包括它们的属性)并删除它们: import java.io.File; import java.io.IOException; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; import javax.xml.transform.OutputKeys; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerException; import javax.xml.transform.TransformerFactory; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; import javax.xml.xpath.XPathConstants; import javax.xml.xpath.XPathExpression; import javax.xml.xpath.XPathExpressionException; import javax.xml.xpath.XPathFactory; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; import org.xml.sax.SAXException; public class RecursiveNodeCheck { /** * @param args */ public static […]

获得价值无法理解

我正在编写一个selenium代码来执行以下操作。 在文本框中输入值。 选择下拉值。 选择一个单选按钮。 按下go按钮。 当我这样做时,我将得到一个结果列表,我想得到第一个结果块的标题。 以下是我的代码。 import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; import org.openqa.selenium.remote.CapabilityType; import org.openqa.selenium.remote.DesiredCapabilities; public class Test1 { public static void main(String[] args) throws InterruptedException { WebDriver driver; System.setProperty(“webdriver.gecko.driver”, “C:\\Users\\home\\Downloads\\geckodriver.exe”); DesiredCapabilities capabilities = new DesiredCapabilities(); capabilities.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true); driver = new FirefoxDriver(capabilities); driver.get(“https://www2.chubb.com/us-en/find-agent-page.aspx”); driver.findElement(By.xpath(“.//*[@id=’tbAddress’]”)).sendKeys(“60089”); driver.findElement(By.xpath(“.//*[@id=’cphHeroContent_drpDistanceMiles’]”)).sendKeys(“2”); driver.findElement(By.xpath(“.//*[@id=’cphHeroContent_rdType_0′]”)).click(); driver.findElement(By.xpath(“.//*[@id=’cphHeroContent_btnSearch’]”)).click(); String title = driver.getTitle().toString(); System.out.println(title); Thread.sleep(10000L); […]

修改XML并使用VTD-XML删除旧节点

我有这样的结构: Hotel 1 11111-1 11111-2 Hotel 2 22222-1 22222-2 … 我想修改每个电话号码,使其具有以下结构: 11111-1 我正在提取数字并构建新节点。 但我不知道在什么时候我应该删除旧的Phone1和Phone2节点。 我的代码: VTDGen vg = new VTDGen(); vg.setDoc(bytes); vg.parse(true); VTDNav vn = vg.getNav(); AutoPilot ap = new AutoPilot(vn); String path = “/Hotels/Hotel”; ap.selectXPath(path); List newNodes = new ArrayList(); int count = 0; // first while-loop: extract all numbers and build new nodes […]

使用xpath获取子节点?

我有以下xml。 我需要使用xpath查询获取根节点的所有子节点。 我怎么写xpath表达式? 12345 Name1 6789 Name2 表达式应返回以下结果: 12345 Name1 6789 Name2 我尝试使用rootElement/rootElementOne/*但没有结果。 谢谢!

XSLT处理大量XML文件(差不多5 GB)

我试图找到一个使用XSLT来转换大型XML文件的一致解决方案(几乎5 GB) Hier是我迄今为止所尝试过的: 从命令行使用MSXML Parser 4.0(SP3): > msxsl.exe myfile.xml mysheet.xslt -o output.xml 内存不足(代码:0x8007000e),文件大于800MB。 使用Mozilla Firefox或IE通过处理指令应用XSLT: … 浏览器在几分钟后崩溃。 尝试在Windows上用PHP(Ver 5.4.22)编写自己的XML-Reader,并选择XPath所需的元素 <?PHP ini_set(’max_execution_time’,0); ini_set(’memory_limit’,’ – 1’); $ xml = simplexml_load_file(’myfile.xml’); foreach($ xml-> xpath(’/ root / node / atribute [@ id =“value”]’)as $ result){ … …… } …… …… Apache服务器崩溃了。 请告诉您在这方面的经历……用Java编写课程怎么样? PS我不想使用像XmlSplit之类的软件!