使用xpath和xquery解析xml文件
我有一个 xml 文件,
<category>
<type name="SWEATERS">
<product id =1>
<itemNumber>1</itemNumber>
<name>ProductA2</name>
<price>345</price>
</product>
<product id=2>
<itemNumber>4</itemNumber>
<name>Product Test </name>
<price>456</price>
</product>
</type>
</category>
我使用了 xquery
$xml->xpath('//category/type/product[@id=1]');
当我使用这个 xquery 时,我只获取名称和价格。我如何获取类型名称“SWEATERS”以及名称和价格
I have a xml file
<category>
<type name="SWEATERS">
<product id =1>
<itemNumber>1</itemNumber>
<name>ProductA2</name>
<price>345</price>
</product>
<product id=2>
<itemNumber>4</itemNumber>
<name>Product Test </name>
<price>456</price>
</product>
</type>
</category>
I used the xquery
$xml->xpath('//category/type/product[@id=1]');
When i used this xquery iam getting only the name and price.How i can get the type name 'SWEATERS' along with name and price
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
XPath 1.0 表达式应该是:
或者更静态:
The XPath 1.0 expression should be:
Or more staticly:
如果您想选择 type 元素,则必须将表达式更改为:
//category/type[product/itemNumber=1]
或者仅选择名称:
//category/type [产品/项目编号=1]/@名称
If you want to select the type element, you have to change your expression to:
//category/type[product/itemNumber=1]
Or for just the name:
//category/type[product/itemNumber=1]/@name
恐怕您无法使用 Xpath 进行单个查询来完成此操作,但您可以使用
DOMNode->parentNode
来完成此操作。I'm afraid you can't do it with a single query with Xpath but you can do it with
DOMNode->parentNode
.您可以尝试类似的操作:
这选择一个属性和两个元素。
|
是联合运算符you can try something like:
this selects one attribute and two elements. The
|
is a union operator