首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >获取XML节点属性

获取XML节点属性
EN

Stack Overflow用户
提问于 2011-11-03 14:56:49
回答 1查看 174关注 0票数 0

在通过cURL获取文件之后,我在这里使用了一个自定义的XML解析器。

下面是解析函数

代码语言:javascript
运行
AI代码解释
复制
function pd_xml_parser($rawxml) {
$xml_parser = xml_parser_create();
xml_parse_into_struct($xml_parser, $rawxml, $vals, $index);
xml_parser_free($xml_parser);
$params = array();
$level = array();
$alreadyused = array();
$x=0;
foreach ($vals as $xml_elem) {
    if ($xml_elem['type'] == 'open') {
        if (in_array($xml_elem['tag'],$alreadyused)) {
            $x++;
            $xml_elem['tag'] = $xml_elem['tag'].$x;
        }
        $level[$xml_elem['level']] = $xml_elem['tag'];
        $alreadyused[] = $xml_elem['tag'];
    }
    if ($xml_elem['type'] == 'complete') {
        $start_level = 1;
        $php_stmt = '$params';
        while($start_level < $xml_elem['level']) {
            $php_stmt .= '[$level['.$start_level.']]';
            $start_level++;
        }
        $php_stmt .= '[$xml_elem[\'tag\']] = $xml_elem[\'value\'];';
        @eval($php_stmt);
    }
}
return($params);
}

示例文档将如下所示:

代码语言:javascript
运行
AI代码解释
复制
 <api>
  <tickets>
   <ticket id="number">
    <data></data>
   </ticket>
  </tickets>
</api>

我目前正在调用每个节点,使用foreach调用数据。如何从ticket节点提取属性,即id属性?

谢谢

EN

回答 1

Stack Overflow用户

发布于 2012-10-10 09:07:04

你可以试试

代码语言:javascript
运行
AI代码解释
复制
$xml = '<api>
  <tickets>
   <ticket id="111">
    <data></data>
   </ticket>
    <ticket id="222">
    <data></data>
   </ticket>

  </tickets>
</api>';

echo "<pre>";
$xml = new SimpleXMLElement($xml);
foreach ( $xml->tickets->children() as $ticket ) {
    $attribute = $ticket->attributes();
        print($attribute['id'].PHP_EOL);
}

输出

代码语言:javascript
运行
AI代码解释
复制
111
222
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7997034

复制
相关文章
【Groovy】Xml 反序列化 ( 使用 XmlParser 解析 Xml 文件 | 获取 Xml 文件中的节点和属性 | 获取 Xml 文件中的节点属性 )
创建 XmlParser 解析器 , 传入 Xml 文件对应的 File 对象 ;
韩曙亮
2023/03/30
7.2K0
【Groovy】Xml 反序列化 ( 使用 XmlParser 解析 Xml 文件 | 获取 Xml 文件中的节点和属性 | 获取 Xml 文件中的节点属性 )
XML获取当前节点信息
%XML.Node的以下字符串属性。提供关于当前节点的信息。 在所有情况下,如果没有当前节点,将抛出一个错误。
用户7741497
2022/07/05
1.6K0
使用%XML.TextReader 节点属性
如前所述,类中的%XML.TextReader解析XML文档并创建一个text reader对象,该对象由一组与文档组件相对应的节点组成;节点类型在本章前面的“文档节点”中进行了描述。
用户7741497
2022/07/05
1K0
Java xml节点属性的修改[通俗易懂]
大家好,又见面了,我是你们的朋友全栈君。 Java xml节点属性的修改 修改xml节点的属性,我们先建立一个修改之前的xml文档: <?xml version=”1.0″ encoding=”GB2
全栈程序员站长
2022/09/13
2K0
39 - 读取XML节点和属性值
在当前目录下有一个products.xml 文件,要求读取该文件中products节点的所有子节点的值以及子节点的属性值 <!-- products.xml --> <root> <products> <product uuid="1234"> <id>10000</id> <name>iphone9</name> <price>9999</price> </product> <product uuid="4321"> <id>20000</id> <name>
ruochen
2021/05/25
2.6K0
39 - 读取XML节点和属性值
java解析xml格式的节点属性值
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/137716.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/05
2.2K0
快速获取子图根节点的属性
•一、问题背景•二、构建样例多子图数据•三、实现根节点的属性查找•四、将子图查找的GQL封装为一个函数•五、总结
马超的博客
2022/09/02
2.5K0
快速获取子图根节点的属性
【Groovy】自定义 Xml 生成器 BuilderSupport ( 构造 Xml 节点类 | 封装节点名称、节点值、节点属性、子节点 | 将封装的节点数据转为 Xml 字符串 )
生成 Xml 数据前 , 首先要将 Xml 数据封装起来 , 先手机 Xml 的各个层级节点的信息 , 最后利用这些节点信息生成 Xml 数据 ;
韩曙亮
2023/03/30
6.2K0
xpath库详解xpath入门获取所有节点 //子节点 /父节点 ..属性匹配 @文本获取按序选择节点轴选择
python爬虫抓取网页内容,需要对html或xml结构的数据进行解析,如果用正则,单是写正则表达式就让很多望而生畏了。
章鱼喵
2018/09/26
25.3K0
xpath库详解xpath入门获取所有节点 //子节点 /父节点 ..属性匹配 @文本获取按序选择节点轴选择
【Groovy】自定义 Xml 生成器 BuilderSupport ( 继承 BuilderSupport 抽象类 | 在 createNode 方法中获取节点名称、节点属性、节点值信息 )
参考 Xml 生成器 MarkupBuilder , 自定义开发一个 Xml 生成器 ;
韩曙亮
2023/03/30
1.9K0
【Groovy】自定义 Xml 生成器 BuilderSupport ( 继承 BuilderSupport 抽象类 | 在 createNode 方法中获取节点名称、节点属性、节点值信息 )
Java xml 添加节点
大家好,又见面了,我是你们的朋友全栈君。 建立一个xml文件test.xml,文件内容如下 <?xml version=”1.0″ encoding=”GB2312″ standalone=”no
全栈程序员站长
2022/09/16
1.7K0
XML中节点类型
该 Node 接口是整个文档对象模型的主要数据类型。它表示该文档树中的单个节点。当实现 Node 接口的所有对象公开处理子节点的方法时,不是实现 Node 接口的所有对象都有子节点。例如,Text 节点可能没有子节点,且将子节点添加到这样的节点将导致引发 DOMException。
sr
2018/08/20
1.2K0
XML中节点类型
XML检查属性
本节讨论可用于获取任何属性的名称、值、命名空间、QName和值命名空间的方法。这些方法分为以下几组:
用户7741497
2022/07/05
5560
修改xml的节点
交流、咨询,有疑问欢迎添加QQ 2125364717,一起交流、一起发现问题、一起进步啊,哈哈哈哈哈 import osimport xml.etree.ElementTree as ET#程序功能:批量修改VOC数据集中xml标签文件的标签名称def changelabelname(inputpath): listdir = os.listdir(inputpath) for file in listdir: if file.endswith('xml'):
狼啸风云
2021/06/10
9220
XML元素和属性
默认情况下,next()方法不检查是否存在与标记为必需的属性相对应的元素和属性。要使读取器检查此类元素和属性是否存在,请在调用Next()之前将读取器的CheckRequired属性设置为1。出于兼容性原因,此属性的默认值为0。
用户7741497
2022/07/04
1.4K0
python增加xml文件节点
<train name="wang"> <id>1</id> </train></Manager>'''
py3study
2020/01/10
2.8K0
JavaScript 学习-32.HTML DOM 获取和修改属性节点
前言 根据 W3C 的 HTML DOM 标准,HTML 文档中的所有内容都是节点: 整个文档是一个文档节点 每个 HTML 元素是元素节点 HTML 元素内的文本是文本节点 每个 HTML 属性是属性节点 注释是注释节点 属性节点 比如有一个p标签元素节点 <p id="p2" class="text-center" >点我看看</p> 那么它有2个属性节点:id="p2"和class="text-center" 和一个文本节点点我看看 获取元素的属性 | 方法                      
上海-悠悠
2022/05/30
1.3K0
@namespace 属性——XML命名空间
@namespace 是一条 @规则 ,用来规定使用在 CSS 样式表 中的 XML命名空间 。任何 @namespace 规则都必须在所有的 @charset 和 @import 规则之后, 并且在样式表中,位于其他任何 style declarations 之前。
Html5知典
2019/11/26
8030
js|jq获取兄弟节点,父节点,子节点
08.19自我总结 js|jq获取兄弟节点,父节点,子节点 一.js var parent = test.parentNode; // 父节点 var chils = test.childNodes; // 全部子节点 var first = test.firstChild; // 第一个子节点 var last = test.lastChile; // 最后一个子节点  var previous = test.previousSibling; // 上一个兄弟节点 var next = test.next
小小咸鱼YwY
2019/09/11
15.2K0
Android常见XML属性解析
android:id的设置,通常有三种方式,分别是以下这三种: android:id=”@+id/xxx” android:id=”@android:id/tabhost” android:id=”@id/xxx”
小小工匠
2021/08/16
1.2K0

相似问题

从xml节点获取属性

10

获取XML节点属性值

23

获取xml节点属性值

113

获取XML节点的属性值

12

获取节点属性xml C#

37
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文