Tag: xpath

使用XPath将XML信息提取到List

我有来自SOAP Response的XML数据,如下例所示: AA0001 Adams AA0002 Paul 我想在Map(KEY,VALUE) KEY=tagname, VALUE=value存储有关每个员工的信息Map(KEY,VALUE) KEY=tagname, VALUE=value并希望为在java中使用XPATH的所有员工创建LIST 。 这是怎么做到的? 我尝试了以下方法: public static List createListMap(String path, SOAPMessage response,Map map) { List<Map> list = new ArrayList<Map>(); try { XPath xpath = XPathFactory.newInstance().newXPath(); XPathExpression expr = xpath.compile(“//” + path + “/*”); Object re =expr.evaluate(response.getSOAPBody(), XPathConstants.NODESET); NodeList nodes = (NodeList)res; for (int i = 0; […]

关于使用Saxon使用默认命名空间对xml进行xpath解析

我想要一些与使用saxon对默认命名空间进行xpath解析相关的信息。 我使用Saxon-HE-9.5.1-3.jar在我的代码中使用xpath 2function。 在类路径中包含saxon库之后,我面临着使用默认命名空间解析XML文档的xpath的问题。 使用以下示例XML: 100 有效的XPATH:/ RESPONSE / HEADER / HITS 以下是它工作但不起作用的情况: “XPATH Works” :未指定命名空间时 示例: “XPATH Works” :当给出带前缀的命名空间时 示例: “XPATH不起作用” :当给出带有out前缀的默认命名空间时示例: 你能否帮我解释一下为什么撒克逊以不同的方式处理没有命名空间和默认命名空间? 另外,我如何解决使用默认命名空间为文档执行xpath的情况。 下面是我的代码块: import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.xpath.XPath; import javax.xml.xpath.XPathConstants; import javax.xml.xpath.XPathExpression; import javax.xml.xpath.XPathExpressionException; import javax.xml.xpath.XPathFactory; import net.sf.saxon.xpath.XPathEvaluator; import net.sf.saxon.xpath.XPathFactoryImpl; . . . DocumentBuilder builder; Document doc; DocumentBuilderFactory domFactory = DocumentBuilderFactory.newInstance(); […]

XPath(SimpleXML)根据孩子的兄弟姐妹的价值选择孩子

我正在使用SimpleXML(Java),我正在尝试根据列表中某个兄弟的值获取对象列表。 那么,这是我的XML: Service_Links http://www.stackoverflow.com Stack Overflow http://www.google.com Google Article_Links … … 我想要做的是使用XPath创建一个SimpleXML注释,以获得列表的兄弟“ittype”等于“Service_Links”的所有“链接”的列表。 因此,例如,这只有在我尝试静态获取第一个“资源” –节点(而不是根据它的兄弟“ittype”动态获取“资源” –节点时),这是有效的: @ElementList(name=”links”) @Path(“metadata/resources[1]/resource”) public List link; 我已经尝试了很多方法来格式化xpath来动态地找到“资源” –我想要的节点,我不可能在这里列出它们; 然而,这是我试过的一个例子,在我看来应该有用; 不知道我做错了什么…… @ElementList(name=”links”) @Path(“metadata/resources[resource/ittype=’Service_Links’]/resource”) public List link; 我已经谷歌搜索了一下,包括在这里的SO,并且发现不太相似; 而我所找到的,并没有很好的翻译,以便我发现我需要做什么。 例如,即使它非常相似, 这个SO似乎也不起作用。 更新#1(8OCT @ 12:38 pm) 根据反馈,我试过这个: @ElementList @Path(“metadata/resources/resource[ittype=’Service_Links’]”) public List link; 没有骰子:org.simpleframework.xml.core.PathException:字段’links’中路径’metadata / resources / resource [ittype =’Service_Links’]’的索引无效

Action类不适用于selenium 3.5.3

我想将元素从一个地方拖放到另一个地方。 所以,我正在使用动作类来实现我的function。 问题是我的代码执行成功,没有显示任何错误,但function目标没有实现。 我在firefox和chrome浏览器中尝试了相同的代码,但同样的问题在两个浏览器中都被复制了。 这是网站url 。 我试过的代码: driver.get(“http://www.seleniumeasy.com/test/drag-and-drop-demo.html”); driver.manage().window().maximize(); driver.findElement(By.xpath(“//div[@id=’todrag’]//span[contains(text(), ‘Draggable 1′)]”)); driver.findElement(By.xpath(“//div[@id=’todrag’]//span[contains(text(), ‘Draggable 2′)]”)); driver.findElement(By.xpath(“//div[@id=’todrag’]//span[contains(text(), ‘Draggable 3′)]”)); driver.findElement(By.xpath(“//div[@id=’todrag’]//span[contains(text(), ‘Draggable 4′)]”)); WebElement to = driver.findElement(By.xpath(“//div[@class=’w50 moveleft’]//div[@id=’mydropzone’]”)); String[] array_drag = new String[] {“Draggable 1”, “Draggable 2”, “Draggable 3”, “Draggable 4”}; for(int i=0; i<array_drag.length; i++) { WebElement from = driver.findElement(By.xpath("//div[@id='todrag']//span[contains(text(), '"+array_drag[i]+"')]")); Actions act = new Actions(driver); act.clickAndHold(from).build().perform(); […]

在XML文件中搜索元素值

在给定的XML文件中,我试图在Java中使用XPath搜索字符串的存在。 然而,即使字符串在那里,我的输出也总是作为号码。希望有人可以指出我可能做错了什么? XML文件: intro1 introd1 introd2 1 task objectives object1 object2 1 task objectives object1 This is the Perfect Word I am looking for 在Java中,我试图检查”perfect”这个词的存在,如下所示: expr = xpath.compile(“//article//body//section//region[contains(.,’perfect’)]”); object result = expr.evaluate(doc,XPathConstants.NODESET); NodeList nodes = (NodeList)result; if (nodes.getLength() > 0) { System.out.println(“Found”); // do other stuff here } else { System.out.println(“Not found”); } 当我运行它时,输出始终是”Not Found” […]

使用Java读取svg路径数据的最简单方法?

我正在寻找使用svg图像并解析/处理不同的路径来进行自定义转换。 在Java中,简单地提取路径数据的最简单方法是什么? 我正在查看apache xmlgraphics / batik包,但是如何返回路径类型和参数并不是很明显。 有什么建议么?

使用Java中的XPath和命名空间解析XML

你能帮助我调整这段代码,以便它能够解析XML吗? 如果我删除XML命名空间它的工作原理: String webXmlContent = “\n” + “baz”; DocumentBuilderFactory domFactory = DocumentBuilderFactory.newInstance(); domFactory.setNamespaceAware(true); DocumentBuilder builder = domFactory.newDocumentBuilder(); org.w3c.dom.Document doc = builder.parse(new StringInputStream(webXmlContent)); NamespaceContextImpl namespaceContext = new NamespaceContextImpl(); namespaceContext.startPrefixMapping(“foo”, “http://www.w3.org/2001/XMLSchema-instance”); XPath xpath = XPathFactory.newInstance().newXPath(); xpath.setNamespaceContext(namespaceContext); XPathExpression expr = xpath.compile(“/foo/bar”); Object result = expr.evaluate(doc, XPathConstants.NODESET); NodeList nodes = (NodeList) result; System.out.println(“Got ” + nodes.getLength() + ” nodes”);

在Java中validationxpath表达式

给定用户输入字符串,如何判断它是否是Java中的有效Xpath表达式。 只是好奇,因为我找不到使用javax.xml.xpath库的方法。 谢谢。

如何从一个XML JAVA中获取CDATA标记中包含的文本内容

我有以下XML: application/xml local-C++ 200 <![CDATA[]]> 我想从内容节点解析以下文本,如下所示: <![CDATA[]]> 请注意,内容包含在CDATA标记中。 如何使用任何方法在Java中完成此操作。 这是我的代码: @Test public void testGetDoOrchResponse() throws IOException { String path = “/Users/haddad/Git/Tools/ContentUtils/src/test/resources/testdata/doOrch_testfiles/doOrch_response.xml”; File f = new File(path); String response = FileUtils.readFileToString(f); String content = getDoOrchResponse(response, “content”); System.out.println(“Content: “+content); } //输出:内容:空白 static String getDoOrchResponse(String xml, String tagFragment) throws FileNotFoundException { String content = new String(); try { […]

找出类名是否包含某些文本

作为我测试的一部分,系统应该查明用于打开网站的设备是移动设备还是普通桌面。 我一直收到错误: “InvalidSelectorError:无法找到带有xpath表达式的元素// * [contains(@class,is-mobile …” 萤火虫的财产: 我的测试: public class isMobile { public static boolean isMobile = false; public static boolean checkIfMobile(WebDriver driver) throws Exception { List list = driver.findElements(By .xpath(“//body[contains(@class, ‘is-mobile'”)); if (list == null) { return false; } else { return true; } } } 有人可以告诉我正确的XPath应该如何?