gpt4 book ai didi

php - 使用 xpath 从 xml 中获取值

转载 作者:数据小太阳 更新时间:2023-10-29 02:35:47 24 4
gpt4 key购买 nike

我将word文档转换成xml文件,这是这个文件的一部分:

<w:tc>
<w:tcPr>
<w:tcW w:w="2130" w:type="dxa"/>
</w:tcPr>
<w:p w:rsidR="00255D05" w:rsidRPr="00FF409F" w:rsidRDefault="00255D05" w:rsidP="00D041E7">
<w:pPr>
<w:rPr>
<w:rFonts w:hint="cs"/>
<w:sz w:val="36"/>
<w:szCs w:val="36"/>
<w:rtl/>
<w:lang w:bidi="ar-JO"/>
</w:rPr>
</w:pPr>
<w:r w:rsidRPr="00FF409F">
<w:rPr>
<w:rFonts w:hint="cs"/>
<w:sz w:val="36"/>
<w:szCs w:val="36"/>
<w:rtl/>
<w:lang w:bidi="ar-JO"/>
</w:rPr>
<w:t>myWantedText</w:t>
</w:r>
</w:p>
</w:tc>

我正在尝试获取“myWantedText”的值,到目前为止我已经尝试过:

$xml = new SimpleXMLElement($fileContents);
foreach($xml->xpath('//w:t') as $t) {
var_dump($t);
}

但我得到的只是一拳 object(SimpleXMLElement)[2]

最佳答案

您缺少 namespace in the input XML和斯图尔特指出的声明。下面是您的 XML,带有正确的 Word XML Namespace .

<?php

$str = <<<XML
<?xml version="1.0" standalone="yes"?>
<w:tc xmlns:w="http://schemas.microsoft.com/office/word/2003/wordml">
<w:tcPr>
<w:tcW w:w="2130" w:type="dxa"/>
</w:tcPr>
<w:p w:rsidR="00255D05" w:rsidRPr="00FF409F" w:rsidRDefault="00255D05" w:rsidP="00D041E7">
<w:pPr>
<w:rPr>
<w:rFonts w:hint="cs"/>
<w:sz w:val="36"/>
<w:szCs w:val="36"/>
<w:rtl/>
<w:lang w:bidi="ar-JO"/>
</w:rPr>
</w:pPr>
<w:r w:rsidRPr="00FF409F">
<w:rPr>
<w:rFonts w:hint="cs"/>
<w:sz w:val="36"/>
<w:szCs w:val="36"/>
<w:rtl/>
<w:lang w:bidi="ar-JO"/>
</w:rPr>
<w:t>myWantedText</w:t>
</w:r>
</w:p>
</w:tc>
XML;

$xml = new SimpleXMLElement($str);
$xml->registerXPathNamespace('w', 'http://schemas.microsoft.com/office/word/2003/wordml');
foreach($xml->xpath('//w:t') as $t) {
var_dump($t);
}
?>

输出:

object(SimpleXMLElement)#2 (1) {
[0]=>
string(12) "myWantedText"
}

你可以在这里看到这个工作:http://codepad.org/YRIO6uk3

关于php - 使用 xpath 从 xml 中获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18945960/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com