如何使用 php 获取 XML 中所有现有标签的列表

2024-04-01

我有一个 xml 数据,如下所示

<channel>
<title>-----</title>
<link>------</link>
<description>---</description>
<lastBuildDate>Tue, 27 Sep 2011 16:37:01 +0000</lastBuildDate>
<language>en</language>
<generator>-------</generator>
<item>
    <title>-----</title>
    <link>-------</link>
    <comments>------</comments>
    <pubDate>Tue, 27 Sep 2011 16:37:01 +0000</pubDate>
    <category>-----</category>
</item>
    <item>
    <title>-----</title>
    <link>-------</link>
    <comments>------</comments>
    <pubDate>Tue, 27 Sep 2011 </pubDate>
    <category>-----</category>
</item>
    <item>
    <title>-----</title>
    <link>-------</link>
    <comments>------</comments>
    <pubDate>Wed, 28 Sep 2011 16:37:01 +0000</pubDate>
    <category>-----</category>
</item>
</channel>

由此,我需要检索用户的所有现有 XML 标签,例如频道、标题、链接、项目等,也包括它们的子标签。我的意思是 XML 文件中的所有现有标签 我需要帮助如何使用 php 来做到这一点,我使用了 DOM 和简单的 XML 对象,但如果我知道我需要的标签名称,我只能获取特定标签中的值。

但我实际上需要处理许多 xml 文件,我不知道该特定 xml 的结构和标签是什么,因为我需要获取现有的标签名称,以便我可以将它们显示给用户以选择什么他需要的标签...

我需要使用 php 执行此操作的建议。,

提前致谢。


这是我的尝试:

$doc = new DOMDocument();

$doc->loadXML( $yourXmlString ); // or:
$doc->load( $yourXmlUrl );

$xpath = new DOMXpath( $doc );
$nodes = $xpath->query( '//*' );

$nodeNames = array();
foreach( $nodes as $node )
{
    $nodeNames[ $node->nodeName ] = $node->nodeName;
}

var_dump( $nodeNames );

我希望我能做到xpath虽然表达效率更高一些,但我想不出什么。这就是为什么我不断地覆盖密钥$nodeNames.

想一想:也许我误解了你的问题,你根本不想要唯一的元素名称,而是想要字面意思all元素。如果是这样:您想要它们如何?作为字符串?包括他们的完整路径?

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 php 获取 XML 中所有现有标签的列表 的相关文章

  • 在laravel中组合两个不同的无关系数据库表查询进行分页

    我的数据库中有两个不相关的表 我需要将它们合并 以便我可以将其放在我的搜索视图中 但我不知道是否可能 这是我的代码 这news and season表不相关 但它们具有相似的列 我试图将其放入一个对象中以便于分页 是否可以 search r
  • 如何使用XPath选择非空段落?

    我想要抓取的网页具有类似的结构 每个都有一个段落是一个问题 一个段落是一个答案 我想抓取每个问题和答案并将它们存储在两个项目中 问题是 在某些页面上 问题和答案分别是 xxx p 1 and xxx p 2 但在其他页面上 xxx p 1
  • 解析错误:语法错误,意外的 T_RETURN [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 遇到这个问
  • 收到警告“标头不能包含多个标头,检测到新行”

    我正在用 oops 进行编码 以便用 PHP 上传图像 但是提交图片后却出现警告 标题不能包含多个标题 检测到新行 下面是我的函数 它给出了错误 public function ft redirect query if REQUEST UR
  • Android - 保存动态更改布局的状态

    我有一个布局 用户可以在其中添加按钮并将其放置在他们想要的位置 我想允许用户保存他们的布局 以便下次打开应用程序时加载它 有谁知道我是否可以将文件保存到 SD 卡上 或者 我可以使用某种layout getXml 方法并将其放入我的应用程序
  • 将查询字符串附加到任何形式的 URL

    我要求用户在文本框中输入 URL 并需要向其附加查询字符串 URL 的可能值如下 http www example com http www example com http www example com a http www examp
  • Facebook iFrame 应用程序 - 摆脱垂直滚动条?

    我已经转换了一个 Facebook 应用程序 http apps facebook com video preferans 从 FBML 到 iFrame 使用 PHP SDK 现在显示的垂直滚动条与我之前显示的内容数量相同 一个徽标 一个
  • 从 php 到 JavaScript 的数组

    我正在尝试使用 json 将数组列表从 php 传输到 javascript 但它不起作用 JS ajax url getProfilePhotos php type post post or get method data if you
  • 如何在 MessageContract 类型中使用 XML 属性?

    前面的注释 我无法更改传入的 SOAP 请求的格式 因为它们是由国际标准固定的 weeeeeeeee 我有一个 SOAP 请求进入我的 WCF 服务 如下所示
  • json_encode 返回 NULL?

    由于某种原因 项目 描述 返回NULL使用以下代码 这是我的数据库的架构 CREATE TABLE staff id int 11 NOT NULL AUTO INCREMENT name longtext COLL
  • Laravel 登录后重定向回来

    登录后如何重定向返回页面 在 Laravel 5 2 中 认证控制器 protected redirectTo 重定向用户
  • 如何在同一 PHP 页面上多次使用 mysqli fetch_assoc() 和准备好的语句?

    有没有办法启用fetch assoc 在同一页上多次使用准备好的语句 data conn gt prepare SELECT FROM some table WHERE id data gt bind param i id data gt
  • 使用 :hover 作为元素的内联样式(使用 HTML/CSS/php)[重复]

    这个问题在这里已经有答案了 可能的重复 如何将 a hover 规则嵌入到文档中间的样式属性中 https stackoverflow com questions 131653 how do i embed an ahover rule i
  • 使用 yum 和 pear 安装 php-soap 均失败

    我正在尝试在 Centos 6 4 服务器上安装 PHP 的 SOAP 扩展 我对包管理器 从 CLI 安装包并在 PHP 中配置它们相当不熟悉 我相当有能力管理 php ini 和其他 PHP 配置文件 soap ini 等 我尝试使用以
  • Text::平衡和多行 xml

    看来我有点失落了 我需要解析一个大的 大约 100 mb 且相当难看的 xml 文件 如果我使用parsefile 它返回错误 文档元素后的垃圾 但它会很乐意解析文件的较小元素 所以我决定将文件分解为元素并解析它们 由于不鼓励使用正则表达式
  • PHP 共享标头而不使用服务器端脚本?

    到目前为止我总是通过 PHP 解决简单的问题 您有一个包含页眉 菜单 页脚和内容字段的网站 每个页面的页眉 菜单和页脚通常是相同的 在没有 PHP 或任何其他服务器端语言的情况下 如何使页眉 菜单和页脚数据仅存在于一个文件中 例如 您不会有
  • 使用 file_get_content 发布数据

    我已经做了一些关于如何使用的研究file get content与帖子 我也读过this one https stackoverflow com questions 2445276 how to post data in php using
  • 使用 MYSQL 将 h:mm pm/am 时间格式插入数据库

    我正在尝试将以 h mm am pm 格式写入的时间插入到存储为标准 DATETIME 格式 hh mm ss 的数据库中 但我不知道如何将发布的时间转换为标准格式所以数据库会接受它 这是我到目前为止一直在尝试的 title POST in
  • PHP条件,如果当前页面,则链接突出显示[关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我有一个带
  • D3 将现有 SVG 字符串(或元素)追加(插入)到 DIV

    我到处寻找这个问题的答案 并找到了一些我认为可能有用的资源 但最终没有让我找到答案 这里有一些 外部SVG http bl ocks org mbostock 1014829 嵌入SVG https stackoverflow com qu

随机推荐

  • Iexpress - 提取路径

    我要创建一个自解压存档 但在连接默认解压路径时遇到问题 我想在与自解压存档程序相同的路径中解压我的文件 不幸的是 这些文件正在另一个路径中提取 C Users computer AppData Temp IXP000 TMP 可以设置路径吗
  • 应用程序无法打开,因为它来自身份不明的开发者

    我昨天安装了 Mac OS X Mavericks 10 9 从那时起我无法启动 Eclipse 我附上我看到的消息的屏幕截图 有解决方法吗 我找到了一个解决方案修复 Mac OS X 中的 应用程序无法打开 因为它来自身份不明的开发者 错
  • 如何使用 GitPython 拉取远程存储库?

    我正在尝试找到使用 gitPython 提取 git 存储库的方法 到目前为止 这是我从官方文档中获取的内容here http gitpython readthedocs org en latest tutorial html handli
  • Android File.exists() 不区分大小写吗?

    我创建了一个新文件夹 sdcard dd by File album new File albumPath if album exists Log d TAG albumPath already exists else boolean bF
  • OS X 上带有 fat 库的架构 x86_64 的未定义符号

    我已经建立了libcrypto a and libssl a我自己从来源处指定darwin64 x86 64 cc 对于 64 位 和darwin i386 cc 对于 32 位 至OpenSSL的配置脚本 创建了脂肪库lipo并将它们添加
  • 难道静态成员不会使类本身成为(全局)对象吗?

    每当我遇到单例模式或任何静态类 即 几乎 仅具有静态成员的类 的实现时 我想知道这是否实际上是一种黑客行为 因此严重滥用了类和实例的原则只是为了设计单个对象而不是设计类并创建单个实例 对我来说 看起来类的静态成员通常会尝试向类添加某种它们实
  • 套接字附加程序 - 基本示例一步一步[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • React router Link 标签的 target="_blank" 上的不同路由渲染

    即使链接将 to 属性设置为正确的路线 但单击时也不会加载 React router 中的另一条路由被加载到它的位置 这是代码 App js const isLoggedIn setIsLoggedIn React useState fal
  • 从距离矩阵开始查找 K 个最近邻

    我正在寻找一个接受良好优化的函数n X n距离矩阵并返回n X k矩阵的索引k第 i 行中第 i 个数据点的最近邻居 我发现了无数的不同R可以让您执行 KNN 的软件包 但它们似乎都在同一函数中包含距离计算和排序算法 特别是 对于大多数例程
  • 可以直接使用程序集访问缓存吗?

    就效率而言 缓存是一个核心问题 我知道缓存通常会自动发生 但是 我想自己控制缓存的使用 因为我认为我可以比一些不知道确切程序的启发式方法做得更好 因此 我需要汇编指令来直接移入或移出高速缓存单元 like movL1 address con
  • java中的HttpClient [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我想使用一个简单的 HttpClient 然而 看来sun net www http HttpClien
  • php 中的短唯一 ID

    我想创建一个唯一的 ID 但是uniqid 正在给予类似的东西 492607b0ee414 我想要的是类似于tinyurl给出的东西 64k8ra 越短越好 唯一的要求是它不应该有明显的顺序 并且它应该看起来比看似随机的数字序列更漂亮 字母
  • 如何选择具有列名称的所有表并更新该列

    我想找到我的数据库中包含列名 Foo 的所有表 并将其值更新为 0 我在想这样的事情 但我不知道如何将 UPDATE 放在该代码上 我计划有关于 MySQL 数据库内的事件的这条语句 我使用的是 WAMP 这个想法基本上是每天运行一个事件
  • 角度资源不调用我的错误回调函数

    我已经这样做了几个小时 但我不明白为什么当我的 Rails 后端引发正确的错误时 Angular 没有触发我的错误回调 我正在使用角度 1 2 0rc1 根据文档 non GET class actions Resource action
  • Wordpress - 如何使 URL 返回具有自定义内容类型的动态 JSON?

    首先是一些背景知识 我尝试按照此处的说明进行操作 https developer apple com library archive documentation General Conceptual AppSearch UniversalL
  • 为什么 C++ 中的析构函数以与初始化相反的顺序取消分配内存?

    以与变量相反的顺序取消分配内存有什么好处 考虑这个例子 Type1 Object1 Type2 Object2 Object1 假设Object2使用一些内部资源Object1并且只要Object1已验证 例如 Object2s 析构函数访
  • 过滤 QueryDSL 搜索的结果

    我使用 QueryDSL 作为 Spring Data Rest 的一部分来从我们的 API 中搜索实体 是否可以以某种方式过滤搜索 API 以便默认情况下不会找到 已停用 的汽车实体 目前 我在汽车实体上有一个标志 当它设置为 true
  • 加速 Selenium Webdriver

    我在 Perl 语言绑定下使用 Selenium Webdriver 2 0 和 Firefox 20 它非常慢 例如 一个常见的操作是填写几个
  • 获取 Playwright 中输入元素的值

    如何返回 elem 的值以便我可以验证它确实是1 const elem await page input my input await elem fill 1 另外 从 v1 20 开始 还有toHaveValue可以验证元素值的匹配器 a
  • 如何使用 php 获取 XML 中所有现有标签的列表

    我有一个 xml 数据 如下所示