【发布时间】:2017-07-10 16:58:36
【问题描述】:
我有一个无效的 XML,文件本身存在很多问题,我需要每天从该文件重新导入。结构如下:
<products>
<product no="AP1222-00" name="Colours kravata" price="456" currency="Kč">
<description name="POPIS PRODUKTU">Kravata Premier Line v moderních barvách. Materiál polyester. Baleno v sáčku s černým poutkem.</description>
</product>
<product no="AP1222-22" name="Colours kravata" price="330" currency="Kč">
<description name="POPIS PRODUKTU">Blabla.</description>
</product>
</products>
是否有任何简单的方法来获取产品数组,以便我可以在导入之前修复文件中的问题? SimpleXML 等不起作用,因为文件无效。
编辑: 这是一份完整的XML产品供参考,注意产品名称中的双引号:
<products>
<product no="AP1222-00" name="" Colours" kravata" price="456" currency="Kč">
<folders>
<folder category="<b>COOL 2017</b>" subcategory="TEXTILE & FASHION"/>
<folder category="TEXTILE & FASHION" subcategory="Kravaty a šály"/>
</folders>
<description name="POPIS PRODUKTU">Kravata Premier Line v moderních barvách. Materiál polyester. Baleno v sáčku s
černým poutkem.
</description>
<properties>
<property name="KS / KARTON" value="100"/>
<property name="HMOTNOST KARTONU" value="6"/>
<property name="NETTO HMOTNOST / KARTON" value="5"/>
<property name="DIM1" value="15"/>
<property name="DIM2" value="80"/>
<property name="DIM3" value="35"/>
<property name="TECHNOLIGIE POTISKU" value="T1 (8C, 50×80 MM)"/>
<property name="TARIF" value="6215200090"/>
<property name="Min. mn. (ks)" value=""/>
<property name="M3/CARTON" value="0.042"/>
<property name="COOL 2017 KAPITOLA" value="TEXTILE AND FASHION"/>
<property name="COOL 2017 STRANY" value="525"/>
<property name="main category" value="fashion"/>
</properties>
<images>
<image src="http://www.andapresent.com/kepek/cms/original/83653.jpg"/>
</images>
<stocks>
<stock name="navi_central" value="2"/>
<stock name="navi_arrive" value="" date=""/>
<stock name="eu_central" value="" date=""/>
<stock name="eu_arrive_1" value="" date=""/>
<stock name="eu_arive_2" value="" date=""/>
</stocks>
</product>
</products>
【问题讨论】:
-
我没有看到关于上述 XML 的任何无效内容?
-
我只是发布了结构作为示例,还有更多行带有
name=""Something" else "等内容。 -
如果文件包含错误尝试将其解析为 html 文件 (
DOMDocument::loadHTML) -
请准确描述它是如何无效。您无法修复空的 XML,无法修复扩展名为
.png的纯图像 XML... -
您确实应该发布无效 XML 的示例。如果我们甚至不知道错误是什么,就很难回答这个问题。但是我认为如果文件不一致,您将很难编写解析器,特别是使用正则表达式。这通常是正则表达式不足的地方。所以你的问题的答案很可能是:不,没有简单的方法。