在 PHP 中附加 XML 节点

2024-01-26

大家好,有人可以帮我用 PHP 修改下面的 XML 文档吗?

这个问题的主要原因是我想附加一个虚拟 XML 节点,其标签名称为Service到活动>>正文>>服务>>服务安装

下面是XML文档

<Event>
    <Header>
        <EventSource>TXT</EventSource>
    </Header>
    <Body>
        <Services>
            <CurrentServices>
                <Service serviceID = "SS014">
                    <ServiceChangeActivity>NoChange</ServiceChangeActivity>
                    <TelephoneNumbers>
                        <TN></TN>
                    </TelephoneNumbers>
                    <Rate>0.00</Rate>
                    <Desc>Auto</Desc>
                    <Count>1</Count>
                    <LOB>XHS</LOB>
                    <PackageCode>Test</PackageCode>
                    <EPCServiceDef>
                        <EPCProduct pn = "10300029">
                            <Name>Auto</Name>
                            <LongDescription>Auto SERVICE</LongDescription>
                            <Type>Service</Type>
                            <LOB>Video</LOB>
                        </EPCProduct>
                    </EPCServiceDef>
                    <Type>S</Type>
                    <TypeClassification>S</TypeClassification>
                    <SubType>04</SubType>
                    <Status>C</Status>
                    <Provisionable>N</Provisionable>
                    <BillCode>Auto</BillCode>
                    <BillCodeDescription>Auto</BillCodeDescription>
                    <Outlet></Outlet>
                    <Port></Port>
                    <BeforeQuantity>1</BeforeQuantity>
                    <Quantity>1</Quantity>
                    <ConnectDate>2016-12-19</ConnectDate>
                    <CompleteIndicator>C</CompleteIndicator>
                </Service>
                <Service serviceID = "BA">
                    <ServiceChangeActivity>NoChange</ServiceChangeActivity>
                    <TelephoneNumbers>
                        <TN></TN>
                    </TelephoneNumbers>
                    <Rate>0.00</Rate>
                    <TXTServiceBilling>
                        <BeginDate>2016-12-19T00:00:00.000Z</BeginDate>
                        <Discount></Discount>
                        <DiscountDescription/>
                        <CustomerDiscount></CustomerDiscount>
                        <CustomerDiscountDescription/>
                        <DiscountGroup/>
                        <DiscountGroupBeginDate/>
                        <Charge>0.00</Charge>
                        <ChargeType>R</ChargeType>
                        <ChargeMethod></ChargeMethod>
                        <Hold/>
                    </TXTServiceBilling>
                    <Desc>Basic</Desc>
                    <Count>1</Count>
                    <LOB>Video</LOB>
                    <PackageCode>BA</PackageCode>
                    <EPCServiceDef>
                        <EPCProduct pn = "Auto">
                            <Name>Basic Video (B1)</Name>
                            <LongDescription>BASIC VIDEO</LongDescription>
                            <Type>Service</Type>
                            <LOB>Video</LOB>
                        </EPCProduct>
                    </EPCServiceDef>
                    <Type>S</Type>
                    <TypeClassification>S</TypeClassification>
                    <SubType>01</SubType>
                    <Status>C</Status>
                    <Provisionable>N</Provisionable>
                    <BillCode>BA</BillCode>
                    <BillCodeDescription>Basic</BillCodeDescription>
                    <Outlet></Outlet>
                    <Port></Port>
                    <BeforeQuantity>1</BeforeQuantity>
                    <Quantity>1</Quantity>
                    <ConnectDate>2016-12-19</ConnectDate>
                    <CompleteIndicator>C</CompleteIndicator>
                    <TXTServiceIdentifier>3</TXTServiceIdentifier>
                </Service>
            </CurrentServices>
            <ServiceChanges>
                <ServiceInstalls>
                    <Service serviceID = "SSSS">
                        <ServiceChangeActivity>Install</ServiceChangeActivity>
                        <Desc>SSSS</Desc>
                        <LOB>Other</LOB>
                        <TXTServiceIdentifier>4</TXTServiceIdentifier>
                    </Service>
                </ServiceInstalls>
                <ServiceDisconnects/>
            </ServiceChanges>
        </Services>
    </Body>
</Event>

我已经尝试过这样的代码,但出现错误

$str只不过是在XML之上

$result = simplexml_load_string($str);
$result = $result->xpath('/Event/Body/Services/ServiceChanges/ServiceInstalls');
$result = $result->addChild('Service','');

echo $result;

Error is


致命错误:调用数组中的成员函数addChild()C:\xampp\htdocs\xhe2e\info.php在线的107
第 107 行是 $result = $result->addChild('Service','');


您在尝试中错过了一个微妙的项目:

$result = simplexml_load_string($str);
$result = $result->xpath('/Event/Body/Services/ServiceChanges/ServiceInstalls');
// $result should now be an array.  Check to be sure:
if ( $result && is_array( $result ) ) {
    // since it IS an array, set to the first element of the array
    $result = $result[0];
    // And NOW we can append
    $result = $result->addChild('Service','');
}

// The part from here is only to make the output pretty-xml
// instead you can just use $result->saveXML()
$dom = new DOMDocument("1.0");
$dom->preserveWhiteSpace = false;
$dom->formatOutput = true;
$dom->loadXML($result->saveXML());
var_dump($dom->saveXML());
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 PHP 中附加 XML 节点 的相关文章

  • Laravel 从 5.6 升级到 Laravel 6

    我有一个项目https github com javedbaloch4 Laravel Booking https github com javedbaloch4 Laravel Booking发展于Laravel 5 6现在我想将其升级到
  • 单词之间没有空格的语言(例如亚洲语言)中的断词?

    我想让 MySQL 全文搜索适用于日语和中文文本以及任何其他语言 问题在于这些语言以及可能其他语言通常在单词之间没有空格 当您必须键入与文本中相同的句子时 搜索没有用 我不能只在每个字符之间添加空格 因为英语也必须有效 我想用 PHP 或
  • 在 php 中为类自动生成 getter 和 setter 的最佳方法是什么? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我经常创建一个包含一些私有变量的类 当设置此类的实例时 应该可以使用 getter 和 setter 填充该类的所有变量 有没有一种简单的方法可
  • 检查 PHP 中“@”字符后面的单词

    我现在正在制作一个新闻和评论系统 但是我已经在一个部分上停留了一段时间了 我希望用户能够在 Twitter 上引用其他玩家的风格 例如 用户名 该脚本看起来像这样 不是真正的 PHP 只是想象脚本 3 string I loved the
  • Symfony2 Assetic 和 Less Sourcemaps

    我不确定如何破解 assetic less 过滤器以输出源映射文件 我这里指的是LessFilterhttps github com kriswallsmith assetic blob master src Assetic Filter
  • PHP 在输入流中使用 fwrite 和 fread

    我正在寻找将 PHP 输入流的内容写入磁盘的最有效方法 而不使用授予 PHP 脚本的大量内存 例如 如果可以上传的最大文件大小为 1 GB 但 PHP 只有 32 MB 内存 define MAX FILE LEN 1073741824 1
  • PHP 脚本可以在终端中运行,但不能在浏览器中运行

    我正在尝试执行exec命令 但我遇到了问题 当我运行以下代码时 当我通过浏览器运行它时它不起作用 但如果我把输出 str将其复制并粘贴到终端中 它工作得很好 造成这种情况的原因是什么 我该如何解决 目前我正在运行localhost php
  • 在 Wordpress 站点中进行 AJAX 调用时出现问题

    我在使用 Wordpress 站点功能的 AJAX 部分时遇到了一些问题 该功能接受在表单上输入的邮政编码 使用 PHP 函数来查找邮政编码是否引用特定位置并返回到该位置的永久链接 我的第一个问题是关于我构建的表单 现在我的表单操作是空白的
  • 随机组合 MySQL 数据库中的两个单词

    我有一个包含名词和形容词的数据库 例如 id type word 1 noun apple 2 noun ball 3 adj clammy 4 noun keyboard 5 adj bloody ect 我想创建一个查询 它将抓取 10
  • Doctrine EntityManager 清除嵌套实体中的方法

    我想用学说批量插入处理 http doctrine orm readthedocs org en latest reference batch processing html为了优化大量实体的插入 问题出在 Clear 方法上 它表示此方法
  • 如何在 PHP 中从 IP 地址/国家/地区名称查找时区 ID?

    谁能告诉我 PHP 中是否有任何方法可以从 IP 地址或国家 地区名称获取时区区域 例如 亚洲 加尔各答 描述 我正在尝试根据他 她的国家 地区设置用户时区 我从他的 IP 地址获取用户所在国家 地区 但我需要该国家 地区的时区区域 例如
  • 一次播种多行 laravel 5

    我目前正在尝试为我的用户表播种 如果我像这样尝试 2 行 就会失败 如果我只使用单个数组而不是 users 数组内的 2 个数组来创建一些假数据 那么效果很好 我做错了什么 正确的方法是什么 class UserTableSeeder ex
  • 如何在 Laravel 中使用 PUT http 动词提交表单

    我知道这个问题可能已经提出 但我就是无法让它发挥作用 如果有人可以帮助我 我将非常感激 我安装了 colletive form 但答案也可以是 html 表单标签 现在列出我的表格 我的路线和我的例外情况 Form model array
  • ini_set 'session.gc_maxlifetime' 为 1 天

    If I do ini set session gc maxlifetime 86400 这是否意味着用户可以将浏览器留在同一页面 非活动状态 最多 1 天 而不必担心会话被垃圾收集并被注销 如果服务器配置不支持此功能会发生什么 它会给我一
  • 为什么 Composer 降级了我的包?

    php composer phar update这样做了 删除了 2 3 0 软件包并安装了整个 2 2 5 Zend Framework php composer phar update Loading composer reposito
  • Magento - 自定义支付模块

    这是一个非常普遍的问题 但这里是 我正在尝试在 Magento 中创建一个自定义支付模块 我创建了一个 常规 模块 可以连接到 Magento 事件 观察者模型 但是我如何告诉 Magento 将模块视为支付模块 以便它显示在管理后端和结账
  • 简单的 PHP 表单:电子邮件附件(代码 Golf)

    想象一下 一个用户想要在其网站上放置一个表单 该表单将允许网站访问者上传一个文件和一条简单的消息 该消息将立即通过电子邮件发送 即 该文件未存储在服务器上 或者如果该文件存储在服务器上 仅暂时 作为文件附件 并在邮件正文中添加注释 查看更多
  • post php mysql 的拆分关键字

    我有一个表存储帖子 ID 它的标签如下 Post id Tags 1 keyword1 keyword2 keyword3 我想循环遍历该表中的每一行并执行以下操作 将关键字1 关键字2 关键字3放入新表中 word id word val
  • 对具有混合类型值的数组进行数字排序

    我有一个像这样的混合数组 fruits array lemon Lemon 20 banana apple 121 40 50 然后申请sort 其功能如下 sort fruits SORT NUMERIC foreach fruits a
  • 无法显示 Laravel 欢迎页面

    我的服务器位于 DigitalOcean 云上 我正在使用 Ubuntu 和 Apache Web 服务器 我的家用计算机运行的是 Windows 7 我使用 putty 作为终端 遵循所有指示https laracasts com ser

随机推荐

  • 使用 C# 获取 Windows Mobile 手机驱动器的大小(免费、总计)

    如何使用 C 获取 Windows Mobile 手机上任何驱动器的大小 免费 总计 我需要使用在设备上运行的代码 而不是在连接的 PC 上 来执行此操作 我根据对问题的更好理解重写了答案 但对于发现这个问题的人来说 并没有丢失任何原始答案
  • Maven/Eclipse,Eclipse 如何遵守 Maven 运行时范围?

    在 pom xml 中 我包含了 logback 和 SLF4J 如下所示 使用 maven 构建效果非常好 如果我直接从logback导入它会给出编译错误
  • 3 使用 SUM 和 GROUP BY 进行表连接不起作用

    我正在使用三张桌子 AccountingLine 保存通用帐户详细信息 预算 保存每个会计行的预算数据 每个会计行有许多行 实际 保存每个 AccountingLine 的实际成本数据 每个 AccountingLine 许多行 我试图在单
  • 使用 Symfony Process 运行后台任务,无需等待进程完成

    用户提交表单后 我想渲染一个视图文件 然后我想启动一个后台任务来处理五个 MS Excel 文件 每个文件最多可以有 2000 行 但方式是这样用户就不会不必等待该过程完成即可查看该页面 任务完成后我会通过电子邮件通知用户 我正在使用 Sy
  • Android 弹出菜单

    我正在制作一个 Android 应用程序 我有一个显示的项目列表 我希望创建一个弹出菜单 就像您点击联系人列表中联系人的头像时弹出的菜单一样 我尝试查看 Android 参考但找不到它 有人创建过这些弹出菜单之一吗 指向参考或代码示例的链接
  • 如何在 pygame 中检查直线和矩形之间的碰撞?

    我目前正在使用 pygame 在 python 中创建一个游戏 我的 AI 目前正在透过墙壁 看到 我的角色并向其射击 但 AI 不应该射击 所以我的问题是 如何防止这种情况发生 我考虑过线碰撞 其中线从我的 AI 到我的角色 如果这条线碰
  • Google ReCaptcha 未发布“g-recaptcha-response”

    这个问题之前已经被问过 新的 Google ReCaptcha 未发布 接收 g recaptcha response https stackoverflow com questions 27683888 new google recapt
  • 从 mysql 查询中创建多个页面

    所以 我有这个数据库 其中有一些字段称为 id 标题 和 消息 现在我在数据库中收到了大约 700 条消息 所以我想做的就是设置每页最多 50 个消息标题的限制 并制作多个页面 我该怎么做 我只知道使用LIMIT 正如您所猜测的 您必须使用
  • 如何修改 woocommerce_before_cart 操作

    我正在尝试使我的 woocommerce 购物车模板显示为完整的 12 列布局 现有布局使用 bootstrap 的 col sm 8 列 我需要将其更改为 col sm 12
  • JavaScript、Razor 和 Escape 字符。像撇号

    我在我的 MVC3 项目中使用 Razor 我还使用 FullCalendar JQuery 插件 所以当我尝试填充数组时它效果很好 除了一件事 如果s Name包含撇号 它呈现为 39 那不是我想要的 我尝试使用不同的方法 例如编码和解码
  • 确定 FieldInfo 是否是编译器生成的 backingfield

    标题几乎说明了一切 我怎么知道我是否正在获得编译器为 get 生成的 backingfield 设置 属性 我正在运行此代码来获取我的 FieldInfos Class MyType private int foo public int b
  • 是否可以在 Kotlin 中创建递归函数类型?

    我有代表流程中步骤的函数 每个函数还知道下一步 如果有的话 我希望能够做类似的事情 fun fooStep Step do something return barStep the next step is barStep 这些函数是从中央
  • 无法使用作为映射值传递的 Java SQL 语句对象访问临时表

    我的代码目前的工作原理与此类似 public void foo Statement st String sqlStr String tempTableName String aString foo tempTableName boolean
  • 如何独立测试模型的回调方法?

    我在模型中有一个方法 class Article lt ActiveRecord Base def do something end end 我还对该方法进行了单元测试 spec models article spec rb describ
  • 由志愿翻译人员本地化 Delphi 2009 应用程序的流程?

    我有一个免费的科学应用程序 近 100 个国家 地区的数千人正在使用该应用程序 许多人主动提出免费翻译 现在 D2009 使这变得更容易 通过集成和外部本地化工具 加上本机 Unicode 支持 我希望在几种语言中实现这一点 并稳步添加尽可
  • 当我想返回 ResultSet 时在哪里关闭 JDBC 连接

    看来ResultSet当我关闭时会自动关闭Connection 但我想归还ResultSet并在另一种方法中使用它 然后我不知道在哪里关闭Connection and PreparedStatement public ResultSet e
  • Python:类型错误:* 之后的参数必须是序列

    我有这段代码 我尝试在新线程中发送 UDP 数据报 import threading socket address localhost 9999 def send sock sock sendto Message address print
  • 找到具有相同索引节点的所有文件的最快方法是什么?

    我知道的唯一方法是 find home xdev samefile file1 但确实很慢 我想找到一个类似的工具locate 当你有很多文件时 真正的问题就出现了 我认为操作是 O n 没有来自的映射inode命名 唯一的方法是遍历整个文
  • 如何解决 Eclipse SVN 中的冲突

    在使用 Eclipse 进行编码并使用 SVN 作为团队存储库时 我在 Eclipse 中遇到冲突 假设我有冲突并且有 3 个自动生成的文件 解决冲突后 我找不到如何提交冲突解决方案并自动删除生成的文件的命令 在Eclipse之外的SVN中
  • 在 PHP 中附加 XML 节点

    大家好 有人可以帮我用 PHP 修改下面的 XML 文档吗 这个问题的主要原因是我想附加一个虚拟 XML 节点 其标签名称为Service到活动 gt gt 正文 gt gt 服务 gt gt 服务安装 下面是XML文档