【问题标题】:PHP foreach inside XML string syntaxXML字符串语法中的PHP foreach
【发布时间】:2019-08-13 10:09:41
【问题描述】:

我有一个变量,其中是一个 XML 字符串。

在这个 XML 字符串中,我希望 遍历变量 $items,并在 XML 中生成 <item> 元素的数量...虽然我不知道正确的语法...我我正在尝试这样的事情,但它根本不起作用。

谢谢你的建议

    // Not empty, array of numerous elements, just for example
    // and imagination of array here.
    $items = [];
    $variable =  
         '<soap:Envelope>
              <soap:Header>
                  <F2SoapHeader>
                      <login>login</login>
                      <psw>psw</psw>
                  </F2SoapHeader>
              </soap:Header>
              <soap:Body>
                  <method>
                      <items>
                          <?php foreach ($items as $item){ ?>
                              <item>
                                  '. $item .' 
                              </item>
                          <?php } ?>
                      </items>
                  </methods>
              </soap:body>
          </soap:Envelope>';

【问题讨论】:

  • 为什么,XMLWriter 不起作用?
  • 你有一个正确的想法,打破了$item 的单引号,但是你的foreach 仍然在变量$variable 的字符串中。此外,在似乎是 PHP 的内部使用 &lt;?php ... 是行不通的。
  • ...&lt;items&gt;'; 然后foreach .... 然后$variable .= "&lt;item&gt;{$item}&lt;/item&gt;"; 比其余的。
  • 也就是说,我会回应@ArtisticPhoenix,PHP 中已经内置了多个 XML 工具:XML ParserXMLWriter
  • 我一直很幸运使用 XMLWriter,因为如果你有一个大文件等,你可以刷新内存......所以我从不费心创建自己的工具。

标签: php xml loops foreach syntax


【解决方案1】:

&lt;?php?&gt; 之间的所有内容都是 php &lt;?php?&gt; 之外的所有内容都将由服务器输出。

因此必须将soap输出保持在&lt;?php?&gt;之外:


    <?php
        // Not empty, array of numerous elements, just for example
        // and imagination of array here.
        $items = [] 
    ?> 
        <soap:Envelope>
            <soap:Header>
                <F2SoapHeader>
                    <login>login</login>
                    <psw>psw</psw>
                </F2SoapHeader>
            </soap:Header>
            <soap:Body>
                <methods>
                    <items>
                        <?php foreach ($items as $item){ ?>
                            <item>
                                <?php $item ?> 
                            </item>
                        <?php } ?>
                    </items>
                </methods>
            </soap:body>
        </soap:Envelope>

【讨论】:

    猜你喜欢
    • 2013-09-29
    • 1970-01-01
    • 2014-05-15
    • 2016-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多