- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我们从 .xml 文件导入产品
要正确导入产品,我们首先必须创建一个 .xsl 文件,该文件会将 .xml 文件从链接 URL 转换为我们的要求。
.xml 文件的链接如下所示: https://www.importfilexml.de/restful/export/api/products.xml?acceptedlocales=en_US&output-filetype=xml
当我粘贴带标签的链接时,例如选择一个品牌: https://www.importfilexml.de/restful/export/api/products.xml?acceptedlocales=en_US&output-filetype=xml&tag_1=Love+Moschino
然后正常工作。但是当我粘贴到完整产品目录的链接时: https://www.importfilexml.de/restful/export/api/products.xml?acceptedlocales=en_US&output-filetype=xml
Then during validate convert from .xsl to .xml I get issue:
Warning: DOMDocument::loadXML(): Start tag expected, '<' not found in Entity, line: 1 in /home/usr/domains/mywebsite.pl/public_html/vendor/firebear/importexport/Model/Output/Xslt.php on line 34
代码文件.xslt.php:
/**
* @param $file
* @param $xsl
* @return string
* @throws \Magento\Framework\Exception\LocalizedException
*/
public function convert($file, $xsl)
{
if (!class_exists('\XSLTProcessor')) {
throw new LocalizedException(__(
'The XSLTProcessor class could not be found. This means your PHP installation is missing XSL features.'
));
}
$xmlDoc = new \DOMDocument();
$xmlDoc->loadXML($file, LIBXML_COMPACT | LIBXML_PARSEHUGE | LIBXML_NOWARNING);
$xslDoc = new \DOMDocument();
$xslDoc->loadXML($xsl, LIBXML_COMPACT | LIBXML_PARSEHUGE | LIBXML_NOWARNING);
$proc = new \XSLTProcessor();
$proc->registerPHPFunctions();
$proc->importStylesheet($xslDoc);
try {
$newDom = $proc->transformToDoc($xmlDoc);
} catch (\Exception $e) {
throw new LocalizedException(__("Error : " . $e->getMessage()));
}
return $newDom->saveXML();
}
}
.xml:
<?xml version="1.0" encoding="UTF-8"?>
<Items>
<product>
<sku>CPW88FXXCD_002_L34_32</sku>
<group>106003</group>
<product_from_website>brand</product_from_website>
<url_key>panasonic-Trousers-Men-MW0MW02349-grey-32</url_key>
<name>panasonic Trousers Men MW0MW02349 grey</name>
<custom_name>panasonic Trousers Men</custom_name>
<description><div class='pdbDescContainer'><div class='pdbDescSection'><span class='pdbDescSectionTitle'>Collection:</span><span class='pdbDescSectionText'>Spring/Summer</span></div><div class='pdbDescSection'><span class='pdbDescSectionTitle'>Gender:</span><span class='pdbDescSectionText'>Man</span></div><div class='pdbDescSection'><span class='pdbDescSectionTitle'>Type:</span><span class='pdbDescSectionText'>Trousers</span></div><div class='pdbDescSection'><span class='pdbDescSectionTitle'>Fastening:</span><span class='pdbDescSectionText'><span class='pdbDescSectionList'><span class='pdbDescSectionItem'>buttons</span><span class='pdbDescSectionItem'>zip</span></span></span></div><div class='pdbDescSection'><span class='pdbDescSectionTitle'>Pockets:</span><span class='pdbDescSectionText'>4</span></div><div class='pdbDescSection'><span class='pdbDescSectionTitle'>Material:</span><span class='pdbDescSectionText'><span class='pdbDescSectionList'><span class='pdbDescSectionItem'>cotton 96%</span><span class='pdbDescSectionItem'>elastane 4%</span></span></span></div><div class='pdbDescSection'><span class='pdbDescSectionTitle'>Pattern:</span><span class='pdbDescSectionText'>checkered</span></div><div class='pdbDescSection'><span class='pdbDescSectionTitle'>Washing:</span><span class='pdbDescSectionText'><span class='pdbDescSectionList'><span class='pdbDescSectionItem'>wash at 30° C</span></span></span></div><div class='pdbDescSection'><span class='pdbDescSectionTitle'>Model height, cm:</span><span class='pdbDescSectionText'>185</span></div><div class='pdbDescSection'><span class='pdbDescSectionTitle'>Model wears a size:</span><span class='pdbDescSectionText'>32</span></div><div class='pdbDescSection'><span class='pdbDescSectionTitle'>Details:</span><span class='pdbDescSectionText'><span class='pdbDescSectionList'><span class='pdbDescSectionItem'>visible logo</span></span></span></div></div></description>
<qty>3</qty>
<price>88.50</price>
<special_price>44.50</special_price>
<weight />
<color>grey</color>
<gender />
<ean>8719255365841</ean>
<brand>panasonic</brand>
<length />
<size>32</size>
<categories>Clothing/Trousers/Men</categories>
<product_online>1</product_online>
<group>106003</group>
<product_websites>base</product_websites>
<attribute_set_code>Default</attribute_set_code>
<product_type>simple</product_type>
<image>https://www.importwebsite.com/prod/stock_product_image_106003_2086033795.jpg</image>
<additional_images>https://www.importwebsite.com/prod/stock_product_image_106003_2086033795.jpg,https://www.importwebsite.com/prod/stock_product_image_106003_343223477.jpg,https://www.importwebsite.com/prod/stock_product_image_106003_287457799.jpg,https://www.importwebsite.com/prod/stock_product_image_106003_570760537.jpg</additional_images>
</product>
最佳答案
我认为错误不在 XSLT 中,而只是在您使用 PHP DOMDocument API 时,它有两种方法,一种称为 load
如果您有要加载的 XML 或 XSLT 的文件名或文件路径或 URI,则应使用另一个名为 loadXML
的文件如果您有一个包含要解析的 XML 或 XSLT 代码的字符串,则应该使用。
你得到的错误建议你使用 loadXML
但不要传入 XML 或 XSLT 代码,而是传入 XML 或 XSLT 代码的文件名或路径或 URI。为此你应该使用 load
方法。
参见 http://sandbox.onlinephpfunctions.com/code/f080d3aedcc93d591018902724b7846eb063d36b这表明 $doc->loadXML('foo.xml')
生成错误 DOMDocument::loadXML(): Start tag expected, '<' not found in Entity
同时$doc->loadXML('<root>test</root>');
会工作正常。所以改变你的loadXML
调用 load
调用 PHP 代码。
关于php - 警告:DOMDocument::loadXML():需要开始标记,在实体中找不到 '<',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61033708/
我有 2 个“DOMDocument”对象 - $original 和 $additional。我想要的是从 $additional DOMDocument 中获取所有子级并将其附加到 $origin
我有 2 个“DOMDocument”对象 - $original 和 $additional。我想要的是从 $additional DOMDocument 中获取所有子级并将其附加到 $origin
我有一个代码可以将 XML 文件保存到我的目录中。它在我的本地主机和我的共享主机中实际上就像一个魅力,但它在我的 Linux VPS 中不起作用。 我总是遇到这个错误: 警告:DOMDocument:
我试图从某些网页中获取“链接”元素。我无法弄清楚我做错了什么。我收到以下错误: Severity: Warning Message: DOMDocument::loadHTML() [domdocum
有什么区别: Msxml2.DOMDocument Msxml2.XMLHTTP ?当然,另一个问题是哪一个最适合我的目的,如下所述? 上下文是这样的 - 我有代码可以多次调用来检索网页。我正在寻找执
安装后 Windows Server 2012 和 Windows Server 2016 原生支持哪些版本的 MSXML 和 DOMDocument? 最佳答案 Modern versions of
安装后 Windows Server 2012 和 Windows Server 2016 原生支持哪些版本的 MSXML 和 DOMDocument? 最佳答案 Modern versions of
我正在使用以下代码: $doc = new DOMDocument(); $doc->loadHTML("From: fsong | #001I hate you DomDocument :(.you
我使用 xml、xsl 截取服务器的响应并提取所需的片段,以根据客户端请求从服务器响应中提取 html 片段。例如,假设 $content 在我们处理它之前有服务器响应。 $dom = new
我之前在 RapidXml 中询问过一个类似的问题,我现在想知道,相同但使用 Xerces-C。 我正在开发一个需要解析 xml 的 C++ 应用程序。 考虑以下几点: xml文件:file1.xml
这个问题在这里已经有了答案: 关闭 11 年前。 Possible Duplicate: How can I get an element's serialised HTML with PHP's
我有以下 test.php文件,当我运行它时,关闭 标签被删除。 loadHTML(' console.log("hello");
$dom = new DOMDocument('1.0', 'UTF-8'); $dom->loadHTML($content); $divs = $dom->getElementsByTagName
获得除png扩展名以外的所有图像? $xpath = new DOMXPath( $htmlget); $nodelist = $xpath->query("//img[!ends-wi
我想删除所有 script 元素以及此处的代码 aaa EOF; $dom = new DOMDocument(); $dom->loadHTML($pageFile); foreach (
我想制作一个函数,向给定 html 的根标签添加一些属性。 我正在这样做: $dom = new \DOMDocument(); $dom->loadHTML($content);
我想制作向给定 html 的根标记添加一些属性的函数。 我这样做: $dom = new \DOMDocument(); $dom->loadHTML($content); $
我想做的是从 body 标签中获取脚本,但只有包含文本而不是脚本链接的脚本 例如。 console.log("for a test run"); 不是具有文件 src 的脚本。 我想将这些脚本放在页尾
我正在使用 domDocument 来解析这个小的 html 代码。我正在寻找具有特定 id 的特定 span 标签。 Hello world 我的代码: $dom = new domDocument
关闭。这个问题是not reproducible or was caused by typos .它目前不接受答案。 这个问题是由于错别字或无法再重现的问题引起的。虽然类似的问题可能是on-topi
我是一名优秀的程序员,十分优秀!