0

大家好,所以我有一个xml问题,它有 - 在节点之前,我不知道如何用xpath正确处理这个问题,所以xml看起来像这样

<xml>
 <item>
 -<description>
  -<type>
   </type>
  </description>
 </item>
</xml>

所以我怎么能在任何人浪费任何时间给出错误答案之前向下导航说输入 xpath 我已经尝试了 $xml->item->description->type 的正常方法这在这种情况下不起作用我不知道因为它不是名称中的非法字符如何处理 - before th 节点

4

1 回答 1

2

我认为指出它/xml/item/description/type 确实有效(在 XmlSpy 中的 XPath 1.0 和 2.0 中)并不是浪费时间。

就是说,我认为您可能并不真正想要 xml 中的那些“-”字符。也许更好的问题是“如何从 xml 中去除无关的 '-' 字符?”

编辑:

下面是一些改编自SimpleXMLElement 文档的 PHP ,向您表明我没有撒谎:

<?php
    $string =
    "<xml>
     <item>
     -<description>
      -<type>
          Hello World!
       </type>
      </description>
     </item>
    </xml>";

    $xml = new SimpleXMLElement($string);

    $path = '/xml/item/description/type';

    $result = $xml->xpath('/xml/item/description/type');

    while(list( , $node) = each($result)) {
        echo '$path: ',$node,"\n";
    }
?>

输出:

/xml/item/description/type:
    Hello World!

如果您需要任何进一步的帮助,请提供一个重现该问题的简短示例。

(抱歉,如果我的 PHP 不好,我有点生疏了)

于 2012-08-21T14:37:44.440 回答