代码:
$string = htmlspecialchars($vakanz["stellenbeschrieb"]);
echo $string;
输出:
<!-- Haushalthilfe, stundenweise<br /> <br /> Fensterreinigungen und Frühjahrsputz<br /> -->
数据来自网络应用程序,我在其中获得以下代码的内容:
function getVakanzDetail()
{
$vakanzId = $_GET['nummer'];
$apiUrl = getApiUrl('vakanzDetail');
$rawXml = file_get_contents($apiUrl . $vakanzId);
$xmlElement = simplexml_load_string($rawXml, "SimpleXMLElement", LIBXML_NOCDATA);
$json = json_encode($xmlElement);
$data = json_decode($json, true);
$vakanz = $data['vakanz'];
foreach ($vakanz as $key => $value) {
if ($value === []) {
$vakanz[$key] = '';
}
}
return $vakanz;
}
当我直接查看xml时,我可以看到从中获取此输出的字段内部具有完全相同的信息。
<stellenbeschrieb>
<!-- Haushalthilfe, stundenweise<br /> <br /> Fensterreinigungen und Frühjahrsputz<br /> -->
</stellenbeschrieb>
我的问题是:如何在没有HTML标记的情况下修改此输出以获得这样的输出: Haushalthilfe,stundenweise FensterreinigungenundFrühjahrsputz
答案 0 :(得分:0)
您可以将以下逻辑应用于从外部源获取的xml字符串。
var commenttag = "<!-- Haushalthilfe, stundenweise<br /> <br /> Fensterreinigungen und Frühjahrsputz<br /> -->";
var newtext = commenttag.replace(/<!--/g,"").replace(/<br\s*[\/]?>/g,"").replace(/-->/g,"");
console.log(newtext);
&#13;
答案 1 :(得分:0)
试试这个。
function remove($str){
$str = str_replace("<!--", "",$str);
$str = str_replace("-->", "",$str);
return $str;
}
$str = "<!-- Haushalthilfe, stundenweise<br /> <br /> Fensterreinigungen und Frühjahrsputz<br /> -->";
echo strip_tags(remove($str));
这个简单的函数remove()
将删除开始和结束注释。
并strip_tags()从字符串中删除所有html标记。
添加remove()
功能后,请在代码中尝试此操作。
echo strip_tags(remove($vakanz["stellenbeschrieb"]));
答案 2 :(得分:0)
SimpleXML是DOM之上的抽象,但在某些情况下,您需要降低级别。在DOM中,任何东西都是节点,元素,空格和 - 在这种情况下很重要 - 注释。因此,您可以使用Xpath来获取注释节点:
$document = new DOMDocument();
$document->loadXml($xml);
$xpath = new DOMXpath($document);
foreach ($xpath->evaluate('//stellenbeschrieb/comment()') as $comment) {
var_dump($comment->textContent);
}
输出:
string(90) " Haushalthilfe, stundenweise<br /> <br /> Fensterreinigungen und Frühjahrsputz<br /> "
评论中的文字是一个HTML片段。如果您将其加载到第二个DOM中,默认情况下会添加html
和body
标记,但这样可以轻松获取文本 - 没有标记和已解码的html实体:
$document = new DOMDocument();
$document->loadXml($xml);
$xpath = new DOMXpath($document);
foreach ($xpath->evaluate('//stellenbeschrieb/comment()') as $comment) {
$htmlDocument = new DOMDocument();
$htmlDocument->loadHtml($comment->textContent);
$htmlXpath = new DOMXpath($htmlDocument);
var_dump($htmlXpath->evaluate('string(//body)'));
}
输出:
string(65) "Haushalthilfe, stundenweise Fensterreinigungen und Frühjahrsputz"