コードの組み合わせを何回も試しましたが、理解できたと思っても失敗しました!私はいつも「非オブジェクトエラーのプロパティを取得」に戻ります。現在のエラーは次のとおりです。
Notice: Trying to get property of non-object in {PROJECT_DIR} on line 11
とにかく、.docxファイルのdocument.xmlファイルでブックマークのノード値を変更しようとしています。ブックマークIDの=>ブックマーク名の配列があり、単純なforeachを使用してそれらをループしてすべてを編集しています。 SimpleXMLを使用してブックマークを見つけましたが、少し問題があります。
私の現在のコードは次のとおりです。
if (file_exists('document.xml'))
{
$document = simplexml_load_file('document.xml');
}
echo $document->getName() . "<br />";
echo $document->document->body->{'w:bookmarkStart'};
echoステートメントから->documentを削除し、{'w:bookmarkStart'}をbookmarkStartに変更しようとしましたが、すべてが効果的でないことが証明されましたが、上記の変更を試みても通知は返されず、空白になりました。私はまだこのXMLの要点を理解していないと確信しています。私はそれをかなり気にせず、おそらく皆さんにとって問題を指摘するのは簡単でしょうが、コード例の調査と使用には私にとって効果がないことが証明されました;(私が編集しようとしているXMLファイルのコンパクトバージョンは次のとおりです:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<w:document xmlns:wpc="http://schemas.microsoft.com/office/word/2010/wordprocessingCanvas"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships"
xmlns:m="http://schemas.openxmlformats.org/officeDocument/2006/math" xmlns:v="urn:schemas-microsoft-com:vml"
xmlns:wp14="http://schemas.microsoft.com/office/word/2010/wordprocessingDrawing"
xmlns:wp="http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing"
xmlns:w10="urn:schemas-microsoft-com:office:word"
xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main"
xmlns:w14="http://schemas.microsoft.com/office/word/2010/wordml"
xmlns:wpg="http://schemas.microsoft.com/office/word/2010/wordprocessingGroup"
xmlns:wpi="http://schemas.microsoft.com/office/word/2010/wordprocessingInk"
xmlns:wne="http://schemas.microsoft.com/office/word/2006/wordml"
xmlns:wps="http://schemas.microsoft.com/office/word/2010/wordprocessingShape" mc:Ignorable="w14 wp14">
<w:body>
<w:bookmarkStart w:id="0" w:name="MOREG"/>
<w:bookmarkEnd w:id="0"/>
</w:body>
</w:document>