我正在尝试将word2003 xml文件中的XML数据解析为PHP。 SO中读取的所有isticles都没有解决我的问题不幸的是,文件的所有结构都有命名空间,我无法进入它们进行解析。我发现并阅读了许多关于创建命名空间数据的文章,但它并没有向我清除任何内容。
我的xml文件如下所示:
[...]
<w:body>
<w:p wsp:rsidR="00FC2E4E" wsp:rsidRPr="00FC2E4E" wsp:rsidRDefault="00ED100D" wsp:rsidP="00FC2E4E">
<w:pPr>
<w:spacing w:line="240" w:line-rule="auto"/>
<w:ind w:left="-1134"/>
<w:jc w:val="both"/>
<w:rPr>
<w:noProof/>
<w:sz w:val="26"/>
<w:sz-cs w:val="26"/>
<w:lang w:val="PL"/>
</w:rPr>
</w:pPr>
<w:r wsp:rsidR="00FC2E4E" wsp:rsidRPr="00FC2E4E">
<w:rPr>
<w:noProof/>
<w:sz w:val="26"/>
<w:sz-cs w:val="26"/>
<w:lang w:val="PL"/>
</w:rPr>
<w:t>
THIS IS MY SEARCH STRING
</w:t>
</w:r>
</w:p>
</w:body>
我也有我的php文件:
if (file_exists('file.xml')) {
$xml = simplexml_load_file('file.xml');
foreach($xml->children() as $child) {
echo '|' . $child->getName(); <--- this returns nothing!
}
[...do some modification...]
$xml->saveXML('/stworz/dupa.xml');
} else {
exit('Failed to open file.xml.');
}
我想将xml的内容(这是我的搜索字符串)更改为其他值,或者将其删除并添加全部新值?如何进入隐藏在命名空间标记中的文本? 请注意,即使根标记也是命名空间!
提前帮助。
答案 0 :(得分:0)
此代码正常工作,但它会引发大量警告。您可以改为使用PHPWord。
<?php
if(file_exists('test.xml')) {
$xml = new DOMDocument();
$xml->load('test.xml');
foreach($xml->getElementsByTagName('t') as $child) {
echo '|' . $child->nodeValue;
}
echo $xml->saveXML();
} else {
exit('Failed to open file.xml.');
}
?>