我有以下(很大=
<Hotels>
<Hotel>
<Name>Hotel 1</Name>
<City>City 1</City>
<Phone>12345</Phone>
</Hotel>
<Hotel>
<Name>Hotel 2</Name>
<City>City 2</City>
<Phone>67890</Phone>
</Hotel>
...
</Hotels>
我有一个文件,它定义了我要提取的字段及其路径:
$root = "/Hotels/Hotel";
$fields = array("HotelName" => "/Name",
"PhoneNumber" => "/Phone");
因此,HotelName的路径是:/酒店/酒店/名称
。
现在我想了解每家酒店的信息。我无法为它们创建类(如这里),因为脚本必须是动态的,并且将传递具有不同定义文件的不同XML文件。
我如何通过使用路径来解决这个问题,没有类,内存使用率低(=
//编辑:一切都已实现。我只需要一种方法来遍历酒店,并使用我拥有的路径获取它们的值。
如果您已经找到<代码>
尝试阅读本教程,这里有一些解释和示例。http://viralpatel.net/blogs/java-xml-xpath-tutorial-parse-xml/
对于你的porpuse,你应该使用Stax family的东西,而不是DOM。
尝试这样做
public class QueryXML {
public void query() throws ParserConfigurationException, SAXException,
IOException, XPathExpressionException {
// standard for reading an XML file
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
factory.setNamespaceAware(true);
DocumentBuilder builder;
Document doc = null;
XPathExpression expr = null;
builder = factory.newDocumentBuilder();
doc = builder.parse("person.xml");
// create an XPathFactory
XPathFactory xFactory = XPathFactory.newInstance();
// create an XPath object
XPath xpath = xFactory.newXPath();
// compile the XPath expression
expr = xpath.compile("//person[firstname='Lars']/lastname/text()");
// run the query and get a nodeset
Object result = expr.evaluate(doc, XPathConstants.NODESET);
// cast the result to a DOM NodeList
NodeList nodes = (NodeList) result;
for (int i=0; i<nodes.getLength();i++){
System.out.println(nodes.item(i).getNodeValue());
}
// new XPath expression to get the number of people with name Lars
expr = xpath.compile("count(//person[firstname='Lars'])");
// run the query and get the number of nodes
Double number = (Double) expr.evaluate(doc, XPathConstants.NUMBER);
System.out.println("Number of objects " +number);
// do we have more than 2 people with name Lars?
expr = xpath.compile("count(//person[firstname='Lars']) >2");
// run the query and get the number of nodes
Boolean check = (Boolean) expr.evaluate(doc, XPathConstants.BOOLEAN);
System.out.println(check);
}
您可以简单地使该代码适应您的需求。
有没有可能在postgres中做这样的事情: 错误:运算符不存在:jsonb#>TEXT 没有与给定名称和参数类型匹配的运算符。您可能需要添加显式类型转换。
在本章中,将学习如何获取XML DOM对象的节点值。 XML文档具有称为节点的信息单元的层次结构。 对象有一个属性 - ,它返回元素的值。 在以下部分中,将讨论学习 - 获取元素的节点值 获取节点的属性值 以下所有示例中使用的node.xml如下所示 - 1. 获取节点值 使用方法以文档顺序返回具有给定标记名称的所有元素的。 示例 以下示例(getnode example.html)将XML文档(
问题内容: 您如何获取到对象的给定子节点的JSON路径? 例如: 给出了一个引用key4的变量。现在,我正在寻找绝对路径: 有什么办法可以在JS中完成这项工作吗? 先感谢您。 问题答案: 因此,您有一个值为“ key3”的变量,并且您想知道如何基于此字符串的值动态访问此属性? 编辑 哇,我不敢相信我是第一次尝试。其中可能存在一些错误,但是它适用于您的测试用例 现场演示
我有一棵看起来像上面的树,由一个链接结构表示: 我的目标是找到从根节点到叶节点的所有路径。 我的树遍历算法如下所示: 当我运行它时,我确信树正在按图所示构建。我已经测试过了。然而,我无法找出我的树遍历分割错误的原因。 我得到的输出是: 我已经在高度较小的树上测试了它,它是有效的。但是出于某种原因,它不适用于高度大于2的树。我认为这是树出了问题,我检查并打印了每个父级、左子级和右子级,它们打印出来如
本文向大家介绍php获取json数据所有的节点路径,包括了php获取json数据所有的节点路径的使用技巧和注意事项,需要的朋友参考一下 之前我们讲解过使用javascript获取json数据节点路径的问题,今天我们更进一步,讲解下php获取json数据所有的节点路径 以上所述就是本文的全部内容了,希望大家能够喜欢。
问题内容: 在CSS中,任何图像路径都相对于CSS文件位置。 f.ex如果我放入CSS文件并使用类似 浏览器将查找有意义的图像。 是否可以在javascript中做同样的事情? F.ex如果我包括以下代码并将其放在其中: 找不到图片,因为浏览器使用HTML文件作为起点,而不是脚本位置。我希望能够像CSS一样使用脚本位置作为起点。 这可能吗? 问题答案: 按照上面的方法在DOM中搜索您自己的标记是可