douduan3203 2013-03-23 12:06
浏览 37
已采纳

仅输出特定节点PHP XML

Im trying to save a specific node instead of the full xml file, but I get error.

Catchable fatal error: Argument 1 passed to DOMDocument::saveXML() must be an instance of DOMNode, instance of DOMNodeList given in php\corrdination.php on line 31

I'm following the doom documentation but since I don't create new element and only read from an already created xml file, it wont work with creating new elements.

My line 31 is

$resultX = $xpath->query('/stickers/sticker[id="200"]/position/x'); 

And when im trying to save only the changed node i write.

echo $xml->saveXML($resultX);

Any suggestion on how to do it ? This is my whole php file.

    $xml = new DOMDocument();
    $xml->formatOutput = TRUE;
    $xml->preserveWhiteSpace = FALSE; 
    $xml->load('../stickers.xml');

    $xpath = new DOMXPath($xml);
    $resultX = $xpath->query('/stickers/sticker[id="200"]/position/x'); 
    $resultX->item(0)->nodeValue = "150"; 
echo $xml->saveXML($resultX);

If I only echo $xml->saveXML(); The query works but as I said, it saves the whole node structure.

XML file:

<stickers>
  <sticker>
    <position>
      <x>0</x>
    </position>
    <text>Hello world </text>
    <id>200</id>
  </sticker>
 </stickers>

Thanks

  • 写回答

1条回答 默认 最新

  • dongmian8108 2013-03-23 12:22
    关注

    The error says you have to pass DOMNode to DOMDocument::saveXML(). So you need to change this line:

    echo $xml->saveXML($resultX);
    

    to this:

    echo $xml->saveXML($resultX->item(0));
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 基于卷积神经网络的声纹识别
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 stm32开发clion时遇到的编译问题