Php 如何从标记中获取文本?

Php 如何从标记中获取文本?,php,html,dom,xpath,domdocument,Php,Html,Dom,Xpath,Domdocument,我有一些问题。如何在html中的标记之间获取文本 <ReviewsClientModel xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/Microsoft.OneStore.Site.Models"> <Items> <ReviewsClientModel.ReviewClientModel> <Help

我有一些问题。如何在html中的标记之间获取文本

<ReviewsClientModel xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/Microsoft.OneStore.Site.Models">
<Items>
<ReviewsClientModel.ReviewClientModel>
<HelpfulNegative>0</HelpfulNegative>
<HelpfulPositive>2</HelpfulPositive>
<IsPublished>true</IsPublished>
<IsTakenDown>false</IsTakenDown>
<Rating xmlns:d4p1="http://schemas.datacontract.org/2004/07/Microsoft.OneStore.Site.Models.ViewModels">
<ReviewId>5ce5dc85-466d-a1cc-efe7-70bdd5183dfb</ReviewId>
<ReviewText>I downloaded this app it had someone in his eyes its kinda black so I don't know who it is.my cousin thinks its not scary but I get creeped out wen I saw him myself. Whoevers not scared then just wow just wow. FOR SAFETY DONT DOWNLOAD</ReviewText>
<SubmittedDateTime>2015-06-25T20:13:05.633</SubmittedDateTime>
<Title>FOR SAFETY DON"T PLAY</Title>
<UserId>985157380267961</UserId>
<UserName>natalie</UserName>
<ViolationsFound>false</ViolationsFound>
</ReviewsClientModel.ReviewClientModel>

0
2.
真的
假的
5ce5dc85-466d-a1cc-efe7-70bdd5183dfb
我下载了这个应用程序,它有人在他的眼睛有点黑,所以我不知道它是谁。我的表弟认为这并不可怕,但我感到害怕,因为我亲眼看到了他。谁不害怕,那就哇,哇,哇。为了安全起见,请不要下载
2015-06-25T20:13:05.633
为了安全,不要玩
985157380267961
娜塔莉
假的
例如,我想得到“5ce5dc85-466d-a1cc-efe7-70bdd5183dfb”。 我试过:

public function getXpath($str)
    {
        \DB::connection('mongodb')->disableQueryLog();
        libxml_use_internal_errors(true);
        $str = str_replace("\0", '', $str);
        $dom = new \DomDocument();
        $dom->loadHTML('<?xml encoding="UTF-8">' . $str);
        return new \DomXPath($dom);
    }
$xpath = $this->getXpath($str);
$tmpCommId = $xpath->query("//ReviewId");
             $comm_id = trim($tmpCommId->item($j)->nodeValue);
公共函数getXpath($str)
{
\DB::connection('mongodb')->disableQueryLog();
libxml\u使用\u内部错误(true);
$str=str\U替换(“\0”,“'$str”);
$dom=new\DomDocument();
$dom->loadHTML(“”.$str);
返回新的\DomXPath($dom);
}
$xpath=$this->getXpath($str);
$tmpCommId=$xpath->query(//ReviewId);
$comm_id=trim($tmpcomid->item($j)->nodeValue);

我使用Curl下载网站,并将其保存在$str中。

这个答案假设您想要使用Javascript

您可以使用解析html

查看该博客以获取有关库的文档。可能有点过时

编辑:

LarsH告诉我你想要一个PHP中的XML刮刀。虽然我应该检查一下你的示例代码来真正检查它是什么,但它确实有助于提醒人们你想要它在什么地方

至于答案,虽然我对php不是很熟悉,但应该能够很好地处理这个问题


此外,这是一个来自过去的答案,这是一个使用DOM解析HTML的很好的例子。与XML一起使用应该很容易。希望这能有所帮助。

好的,我知道该怎么做。我在使用Curl之后就这么做了,$str=json\u decode($str,true),我将得到一个数组,其中key=标记名,value=标记之间的文本,但您的示例显示了XML。你指的是XML吗?是的,我指的是XML,我的朋友告诉我关于Difference HTML和XML,我现在知道我应该使用其他工具。无论如何,感谢您的回答。首先,您可能希望使用而不是加载HTML,因为您要处理的是XML。第二,当您尝试显示的代码时发生了什么?
$j
的值是多少?也许您想要
->item(0)
而不是使用
$j
?[1] :如果您仍然有问题,我已经更新了我的答案。结果表明,他想要解析XML而不是HTML。这个答案仍然有效吗?而且,他似乎在使用PHP。@LarsH是的,我没有注意到他想使用XML。现在更新我的答案。谢谢你让我知道。