首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >XML Lint解析XML

XML Lint解析XML
EN

Stack Overflow用户
提问于 2020-11-17 15:47:25
回答 1查看 286关注 0票数 1

这是我的XML文件

代码语言:javascript
运行
复制
<?xml version="1.0" encoding="UTF-8"?>
<Environment xmlns="http://schemas.dmtf.org/ovf/environment/1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:oe="http://schemas.dmtf.org/ovf/environment/1" xmlns:ve="http://www.vmware.com/schema/ovfenv" oe:id="" ve:vCenterId="">
  <PlatformSection>
    <Kind>VMware ESXi</Kind>
    <Version>7.0.0</Version>
    <Vendor>VMware, Inc.</Vendor>
    <Locale>en</Locale>
  </PlatformSection>
  <PropertySection>
    <Property oe:key="test" oe:value="test123"/>
    <Property oe:key="testing" oe:value="testing123"/>
  </PropertySection>
  <ve:EthernetAdapterSection>
    <ve:Adapter ve:mac="" ve:network="" ve:unitNumber="7"/>
  </ve:EthernetAdapterSection>
</Environment>

我想使用XMLLint解析它,并获取所有"oe:key“和"oe:value”

我尝试了以下命令:

  1. xmllint --xpath "string(//PlatformSection)“file1.xml
  2. xmllint --xpath "string(//Environment)“file1.xml

但两个人都是空白的。类似地,我尝试了属性和PropertySection,并得到了一个空白的响应。

EN

回答 1

Stack Overflow用户

发布于 2020-11-17 15:58:00

输入XML包含名称空间。所有元素都绑定到以下名称空间:xmlns:oe="http://schemas.dmtf.org/ovf/environment/1"

请尝试以下XPath:

代码语言:javascript
运行
复制
/oe:Environment/oe:PlatformSection

代码语言:javascript
运行
复制
/oe:Environment/oe:PropertySection/oe:Property/@oe:key

或尝试名称空间通配符方法

代码语言:javascript
运行
复制
/*[local-name()='Environment']/*[local-name()='PlatformSection']

获取第一个oe:key属性

代码语言:javascript
运行
复制
/*[local-name()='Environment']/*[local-name()='PropertySection']/*[local-name()='Property'][1]/@oe:key

获取所有属性

代码语言:javascript
运行
复制
/*[local-name()='Environment']/*[local-name()='PropertySection']/*[local-name()='Property'][1]/@*

这里还概述了另一种方法:用于XML命名空间的xmllint

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64878545

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档