标签: domdocument

PHP DOMDocument-> loadXML,XML包含&符号/更少/更大?

我正在尝试解析TEXTDATA中包含字符&<和>的XML字符串.通常,这些字符应该是htmlencoded,但在我的情况下,他们不是这样,我得到以下消息:

警告:DOMDocument :: loadXML()[function.loadXML]:在实体中解析属性名称时出错...警告:DOMDocument :: loadXML()[function.loadXML]:找不到开始标记的结尾...

我可以使用str_replace对所有&进行编码,但如果我用<或>进行编码,我也会使用有效的XML标签.

有谁知道这个问题的解决方法?

谢谢!

php xml domdocument ampersand

1
推荐指数
1
解决办法
8005
查看次数

php domdocument:当我创建一个xml时,我怎样才能正确识别每个元素?

当我使用php的DomDocument创建XML时,它正确地创建了xml但是所有元素都在一行中,xml文件本身不那么可读.

我在谷歌搜索,发现DomDocument中的属性formatOutput应该解决问题,我使用PHP 5.3,我没有在DomDocument中正确.

有任何想法吗?

php xml domdocument

1
推荐指数
1
解决办法
149
查看次数

PHP XML库不返回XPath结果

我试图使用PHP和XPath从这个XML中获取 ID元素为1364的所有Category节点:http://education.oracle.co.uk/html/oracle/28US/schedule.xml

我的代码目前看起来像这样:

$schedule = new SimpleXMLElement("schedule.xml", null, true);
$nodes = $schedule->xpath("//category[id=1364]");
if(!$nodes) {
    echo "No xpath results.";
} else {
    echo count($nodes)." results.";
}
Run Code Online (Sandbox Code Playgroud)

XPath不返回任何结果.我已使用其他XPath查询程序检查了查询,并返回了结果.

上面的代码使用SimpleXML,但是在使用DOMDocument时我遇到了完全相同的问题.在SimpleXML和DOMDocument中,运行XPath"//*"都有效,返回文档中的所有节点.

谢谢!

php xml xpath simplexml domdocument

1
推荐指数
1
解决办法
441
查看次数

如何使用DOMDocument获取标记内容?

说这是HTML吗?

<html>
<body>
<embed scr="...." attr="..."></embed>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

我想匹配整个嵌入标签<embed scr="...." attr="..."></embed>.我怎么能这样做?

我到目前为止

$fragment = new DOMDocument();
$fragment->loadHTML($string);

$xp = new DOMXPath($fragment);
$result = $xp->query("//embed");
print_r($result->item(0));
Run Code Online (Sandbox Code Playgroud)

html php domdocument

1
推荐指数
1
解决办法
3335
查看次数

Msxml2.DOMDocument和Msxml2.XMLHTTP之间的区别

有什么区别:

Msxml2.DOMDocument
Msxml2.XMLHTTP
Run Code Online (Sandbox Code Playgroud)

?当然,另一个问题是哪一个最符合我的目的,如下所述?

上下文是这样的 - 我有许多代码可以检索网页.我正在为这项任务寻找最有效的对象.例如,像这样:

Dim oXmlHttp : Set oXmlHttp = CreateObject("MSXML2.XMLHTTP")

oXmlHttp.Open "GET", sUri, False
oXmlHttp.Send
If Err Then
    getWebPage = "ERROR - could not get the source text of the webpage."
    Exit Function
End If
sResponse = oXmlHttp.responseBody
Run Code Online (Sandbox Code Playgroud)

如果我使用以下方法创建对象,这似乎也是一样的

Dim oXmlHttp : Set oXmlHttp = CreateObject("MSXML2.XMLHTTP")
Run Code Online (Sandbox Code Playgroud)

任何人都可以解释或指向一个明确概述每个人的差异(和预期用途)的参考文献吗?

xmlhttprequest domdocument

1
推荐指数
1
解决办法
7972
查看次数

DOMDocument getElementsByTagName不起作用

我正在尝试使用该DOMDocument函数getElementsByTagName(),但它不断返回一个空对象.我正在使用以下代码:

// Create some HTML
$output = '
<html>
   <body>
      <a href="foo">Bar</a>
   </body>
</html>';

// Load the HTML
$dom = new DOMDocument;
$dom->loadHTML($output);

// Find all links (a tags)
$links = $dom->getElementsByTagName('a');

var_dump($links); // object(DOMNodeList)#31 (0) { } - empty object
Run Code Online (Sandbox Code Playgroud)

我错过了什么?查看文档,看起来我正在使用该功能.

php domdocument xml-parsing

1
推荐指数
1
解决办法
3718
查看次数

XPath不断返回空节点列表

我正在尝试解析一个充满.htm文件的文件夹.所有这些文件都包含需要删除的1个特定元素.这是一个td元素class="hide".到目前为止,这是我的代码. $dir. entry是文件的完整路径.

$page = ($dir . $entry);
$this->domDoc->loadHTMLFile($page);
// Use xpath query to find the menu and remove it
$nodeList = $xpath->query('//td[@class="hide"]');
Run Code Online (Sandbox Code Playgroud)

不幸的是,这是事情已经出错的地方.如果我执行var_dump节点列表,我会得到以下内容:

object(DOMNodeList)#5 (0) { } 
Run Code Online (Sandbox Code Playgroud)

只是让大家知道我想要选择的内容,这里有一段摘录:

<td width="160" align="left" valign="top" class="hide">
    lots of other TD's and content here
</td>
Run Code Online (Sandbox Code Playgroud)

到目前为止,有没有人看到我提出的问题?

html php xpath domdocument

1
推荐指数
2
解决办法
2192
查看次数

如何使用PHP xpath获取样式属性名称

我需要获取所有具有样式属性的标签

$html = '<div style="font-style: italic; text-align: center; 
background-color: red;">On The Contrary</div><span 
style="font-style: italic; background-color: rgb(244, 249, 255); 
font-size: 32px;"><b style="text-align: center; 
background-color: rgb(255, 255, 255);">This is USA</b></span>';

$dom = new DOMDocument;
$dom->loadHTML($html);
$xp = new DOMXpath($dom);

foreach ($xp->query('/*[@style]') as $node) {
    $style =  $node->getAttribute('style');
    echo $style;
}
Run Code Online (Sandbox Code Playgroud)

但它没有任何要求。我的代码有什么错误?而且,我也只想获取样式中的CSS PRoperty名称,例如font-size,font-weight,font-family,而不是它们的值。

php xpath domdocument

1
推荐指数
1
解决办法
2173
查看次数

PHP DOMDocument如何获取此标记的内容?

我正在使用domDocument希望解析这个小的HTML代码.我正在寻找具体的特定span标签id.

<span id="CPHCenter_lblOperandName">Hello world</span>
Run Code Online (Sandbox Code Playgroud)

我的代码:

$dom = new domDocument;
@$dom->loadHTML($html); // the @ is to silence errors and misconfigures of HTML
$dom->preserveWhiteSpace = false;
$nodes = $dom->getElementsByTagName('//span[@id="CPHCenter_lblOperandName"');

foreach($nodes as $node){
    echo $node->nodeValue;
}
Run Code Online (Sandbox Code Playgroud)

但由于某些原因,我认为代码或html都有问题(我怎么知道?):

  • 当我计算echo count($nodes);结果的节点总是1
  • 我在节点循环中没有输出任何内容
  • 如何学习这些复杂查询的语法?
  • 我做错了什么?

html php parsing domdocument

1
推荐指数
1
解决办法
6510
查看次数

使用Php Dom Document从捕获的数据中删除空格和换行符

我正在尝试捕获home_impact和away_impact,但是当我提取文本时,它充满了空白行,空白,断行等,如下所示:

  David Luiz 
        35'






        36'

            De Gea
Run Code Online (Sandbox Code Playgroud)

我也尝试过仅提取div id match_info,但它仅生成一个带有一个元素的数组,并且也有很多换行符。我试过使用preserveWhiteSpace和preg_replace,但是没有用,如何避免这种情况?谢谢。

HTML:

   <div id="match_info">
                           <div class="direct_line">
            <div class="home_impact"><div class='player_name'>David Luiz </div></div>
                <div class="minute">35'</div>
                <div class="away_impact">
                </div>
        </div> 
               <div class="direct_line">
            <div class="home_impact"></div>
                <div class="minute">36'</div>
                <div class="away_impact">
                    <div class='player_name'>De Gea</div>
                </div>
        </div> 
                <div class="direct_line">
            <div class="home_impact"></div>
                <div class="minute">38'</div>
                <div class="away_impact">
                    <div class='player_name'>Ashley Cole</div>
                </div>
               <div class="home_impact"><div class='player_name'>Juan Mata</div>/div>
                <div class="minute">35'</div>
                <div class="away_impact">
                </div>
        </div> 
Run Code Online (Sandbox Code Playgroud)

PHP:

$html = file_get_contents($url);
$doc = new DOMDocument();
//$doc->preserveWhiteSpace = FALSE;
@$doc->loadHTML($html);
$xpath = new DOMXpath ($doc);
$expresionHome="//div[@class='home_impact']";
$expresionAway="//div[@class='away_impact']"; …
Run Code Online (Sandbox Code Playgroud)

php preg-replace domdocument

1
推荐指数
3
解决办法
4524
查看次数