如何解析HTML/XML并从中提取信息?
我花了一整天的PHP的DOM函数但我无法理解它是如何工作的.:(我有一个简单的XML文件,看起来没问题,但我不能使用它我的想法,当我创建它的结构.
示例XML片段:
-pages //root element
-page id="1" //we can have any number of pages
-product id="364826" //we can have any number of products
-SOME_KIND_OF_VALUE
-ANOTHER_VALUE
...
Run Code Online (Sandbox Code Playgroud)
我最初的想法是加快我的客户工作流程,所以我扔掉旧的CSV并开始使用XML.
问题1: 当我将产品分组到页面时,我使用setIdAttribute来防止在树中多次存储同一页面.这样可以正常读取,因为这些id与某种DTD(基于getElementById)相关联.
问题1:
我如何编写一个提供这些必要信息的简单DTD,以便我也可以getElementById在阅读阶段使用?
问题2:
因为我有页面我想加载尽可能少的信息.这就是我在页面上创建id属性的原因.现在我无法直接访问我的页面id ="2"因为上面的问题1(getElementById目前没有意义).不知何故,我可以设法检索给定页面上每个产品的必要信息,但我的代码看起来很吓人:
$doc = DOMDocument::load('data.xml');
$xpath = new DOMXPath($doc);
$query = '/pages/page[' . $page . ']'; //$page is fine: was set earlier
$products = $xpath->query($query);
$_prods = $doc->getElementsByTagName('product');
foreach($_prods as $product){
foreach($product->childNodes as $node){
echo $node->nodeName . ": " . …Run Code Online (Sandbox Code Playgroud)