【问题标题】:How to add namespace with SimpleXML in PHP [duplicate]如何在 PHP 中使用 SimpleXML 添加命名空间 [重复]
【发布时间】:2014-09-21 20:04:27
【问题描述】:

我将不得不在 php 中使用 simpleXML 生成这个 XML:

<fr:program name="fundref">
  <fr:assertion name="funder_name">ABC Inc.
    <fr:assertion name="funder_identifier">http://dx.doi.org/10.13039/xxxxxxxxxx</fr:assertion>
  </fr:assertion>    
  <fr:assertion name="award_number">BXDFSDS</fr:assertion>
</fr:program>

我试过了:

$fundRef = $myXML->addChild('fr', '', 'program');

但这正在创造:

<fr xmlns="program" name="fundref">

谢谢。

【问题讨论】:

  • 其实&lt;fr&gt;是标签,:program是命名空间。
  • 哎呀,对不起。将编辑我的答案 - aswerd 已编辑。
  • 我做了一些研究,我花了几分钟寻找它表明这会很困难。你试过$fundRef = $myXML-&gt;addChild('fr:program', '');吗? (可能行不通)
  • 是的,正如您所提到的,您的示例不起作用。如果您认为这将很难且不起作用,为什么要发布此评论;)
  • 好吧,总比被关起来好。至少我正在尝试提供一些帮助,或者至少是一条可以遵循的路径。顺便说一句,您的第一句话有拼写错误。

标签: php simplexml xml-namespaces


【解决方案1】:

你需要像这样确定命名空间

$myXML->addChild('fr:program', '', 'http://ololo.com/ns/1.0');

这应该有助于PHP's SimpleXML: How to use colons in names

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-07-05
    • 1970-01-01
    • 1970-01-01
    • 2012-01-06
    • 1970-01-01
    • 1970-01-01
    • 2010-10-10
    相关资源
    最近更新 更多