XML节点的内容变化

问题描述 投票:0回答:2

我有一个XML内容,如

<?xml version="1.0"?>     
              <content
                  ID="immunSect"/>
                  <table
                     border="1"
                     width="100%">
                     <thead>
                        <tr>
                           <th>Vaccine</th>
                           <th>Date</th>
                           <th>Status</th>
                        </tr>
                     </thead>
                     <tbody>
                        <tr>
                           <td><content
                              ID="immun2"/>Influenza virus vaccine</td>
                           <td>May 2012</td>
                           <td>Completed</td>
                        </tr>
                        <tr>
                           <td><content
                              ID="immun4"/>Tetanus and diphtheria toxoids</td>
                           <td>April 2012</td>
                           <td>Completed</td>
                        </tr>
                     </tbody>
                  </table>
               </text>

我的问题是我想改变这个节点

<tbody>
                        <tr>
                           <td><content
                              ID="immun2"/>Influenza virus vaccine</td>

<tbody>
                            <tr>
                               <td><content
                                  ID="immun2">Influenza virus vaccine</content</td>

请帮我,我怎么可以获取特定的部分,改变从节点结构

<td><content id="xxx"/>test

<td><content id="xxx">test</content>
php xml xmlnode
2个回答
0
投票

基本上歌厅XML数据时,把循环直到EOF中得到每一行(@字符串1)和解析它,它重写新的变量(@字符串2),你可以将它保存到XML文件/无论你需要它。开始解析@字符串1,移动一切@字符串2,直到你遇到和忽略它,而不是把一个标志1.复制继续,直到找到,然后输入@字符串2。当然,它可以更优雅的方式做,但我需要你在使用获取XML数据就知道了。

希望帮助。


0
投票

由于您的XML格式不正确,则不能使用解析工具,如DOM文档。也许你唯一的选择是使用preg_replace正则表达式替换。这应该工作:

$xml = preg_replace('#<td>(<content.*?)</td>#s', '<td>$1</content></td>', $xml);

Demo on 3v4l.org

© www.soinside.com 2019 - 2024. All rights reserved.