我发现了一些生成错误消息的文件,现在我想修复错误。如何解决以下错误?
如果我这样做
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>
答案 0 :(得分:1)
错误信息非常清楚
与元素类型“CNDB”关联的属性“dt:dt”的前缀“dt”未绑定。
您的输入XML不是名称空间良好的,因为CNDB
元素具有名为dt:dt
的属性,但xmlns:dt="..."
上没有CNDB
或其中一个它的祖先。
答案 1 :(得分:0)
正如@Ian在他的回答中写道,这个问题是由mediainfo
生成无效XML
引起的。已报告此问题,但由于缺乏具有足够XML技能的开发人员来解决问题,似乎问题不会很快得到解决。
我现在的“解决方案”是使用sed
修复输出,如下所示:
mediainfo --Output=XML 7483.MOV | sed -e 's#<CNDB dt:dt=#<CNDB dt=#g' >data.xml