0

エラー メッセージを生成するファイルをいくつか見つけたので、エラーを修正したいと思います。以下のエラーを修正するにはどうすればよいですか?

私が行った場合

mediainfo --Output=XML 7483.MOV >data.xml

次に、ファイルを編集し、エラーを生成するのに必要のない多くの行を削除します。

java -jar /opt/local/share/java/saxon9he.jar data.xml test.xsl

エラーが発生します:

Error on line 2 column 29 of data.xml:
SXXP0003: Error reported by XML parser: The prefix "dt" for attribute "dt:dt" associated
with an element type "CNDB" is not bound.
Transformation failed: Run-time errors were reported

test.xsl には以下が含まれます。

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:fmp="http://www.filemaker.com/fmpxmlresult" exclude-result-prefixes="fmp date redirect"
    xmlns:saxon="http://icl.com/saxon"
    xmlns:date="http://www.jclark.com/xt/java/java.util.Date"
    xmlns:redirect="http://xml.apache.org/xalan/redirect"
    xmlns:lxslt="http://xml.apache.org/xslt"
    xmlns:dt="urn:schemas-microsoft-com:datatypes" dt:dt="binary.base64"
    xmlns:xalan="org.apache.xalan.xslt.extension.redirect"
    extension-element-prefixes="saxon xalan redirect dt">
</xsl:stylesheet>

data.xml には以下が含まれます。

<?xml version="1.0" encoding="UTF-8"?>
<CNDB dt:dt="binary.base64">Q00WIUNNFiFDTRYhQ00WIUNNFiFDTRYhQ00WIUNNFiFDTRYhQ00WIUNNFiFDTRYhQ00WIUNNFiFDTRYhQ00WIUNNFiFDTRYhQ00WIUNNFiFDTRYhQ00WIUNNFiFDTRYhQ00W
IUNNFiFDTRYhQ00WIUNNFiFDTRYhQ00WIUNNFiFDTRYhQ00WIUNNFiFDTRYhQ00WIUNNFiFDTRYhQ00WIUNNFiFDTRYhQ00WIUNNFiFDTRYhQ00WIUNNFiFDTRYhQ00WIUNNFiFDTRYhQ00WIUNNFiFDTRYhQ00W
IT1NFiE9TRYhPU0WIT1NFiE9TRYhPU0WIT1NFiE9TRYhPU0WIT1NFiE9TRYhPU0WIT1NFiE9TRYhPU0WIT1NFiE9TRYhPU0WIT1NFiE9TRYhPU0WIT1NFiE9</CNDB>
4

2 に答える 2

1

エラーメッセージは非常に明確です

要素タイプ「CNDB」に関連付けられた属性「dt:dt」の接頭辞「dt」はバインドされていません。

CNDB要素には名前付きの属性がありますが、またはその祖先の 1 つにdt:dtは存在しないため、入力 XML は名前空間の整形式ではありません。xmlns:dt="..."CNDB

于 2013-03-01T15:31:58.067 に答える
0

@Ian が彼の回答に書いているように、この問題はmediainfoinvalid の生成によって引き起こされましたXML。この問題は報告されていますが、問題を修正するのに十分な XML スキルを持つ開発者が不足しているため、すぐには修正されないようです。

今のところ私の「解決策」はsed、次のように出力を修正することです。

mediainfo --Output=XML 7483.MOV | sed -e 's#<CNDB dt:dt=#<CNDB dt=#g' >data.xml
于 2014-01-28T12:11:58.767 に答える