【问题标题】:How do I find the text within an XML element with specific attributes?如何在具有特定属性的 XML 元素中找到文本?
【发布时间】:2013-06-05 15:42:02
【问题描述】:

我正在寻找使用 Regex 解析从 wordpress 导出的内容,以将其导入自定义博客应用程序。我尝试了多种方法来尝试获取数据,但均未成功。我有:

<category domain="category" nicename="category-name"><![CDATA[Category Name]]></category>

我正在寻找所有文本,其中:<![CDATA[Category Name]]> 是。它还与domain="category" 匹配属性,但我不在乎“好名”是什么。这很重要,因为其他 <category> 元素中有 domain="post_tag",这是我不想要的。

【问题讨论】:

  • 见鬼,甚至可能重复!那又怎样
  • 抱歉,这不是我想要的。我想要一个正则表达式解决方案,而不是使用其他工具。
  • @ChrisG 嘿伙计,不用抱歉。您是 entitled 寻求帮助。那么如果它是(呻吟)可能重复(BFD)怎么办。询问并希望,你们会得到答案。干杯!
  • @ChrisG - 正则表达式解决方案确实不适合您尝试做的事情。它可以工作,但它不是很实用。

标签: php xml regex wordpress


【解决方案1】:

使用 SimpleXML:

Demo

$obj = simplexml_load_string($xml);
foreach($obj->category as $c)
{
   if($c->attributes()->domain == 'category')
   {
     echo (string)$c; // echo the content
   }
}

【讨论】:

  • 谢谢你。我曾考虑将其转换为 simplexml 对象,但随后我将不得不重新编写整个导入脚本。我正在使用我不久前写的一个与当时 WP 兼容的...使用正则表达式。现在随着他们所做的升级,它不再正常工作。如果找不到正则表达式解决方案,我可能不得不放弃并重新编写它。再次感谢。
  • @ChrisG 是的,正如其他人所说,Regex 并不真正适合 XML 的复杂性。祝你好运:)我想到了这个答案:stackoverflow.com/questions/1732348/…
猜你喜欢
  • 2013-02-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-16
  • 1970-01-01
  • 1970-01-01
  • 2013-06-03
相关资源
最近更新 更多