首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >找不到xml片段

找不到xml片段
EN

Stack Overflow用户
提问于 2013-09-16 14:37:17
回答 1查看 2.2K关注 0票数 0

我试图在xml文件中包含xml片段文件,并从java代码访问parent.xml。

Java代码看起来像这样:

代码语言:javascript
复制
DocumentBuilderFactory dfactory = DocumentBuilderFactory.newInstance();
dfactory.setNamespaceAware(true);
dfactory.setXIncludeAware(true);
dfactory.setFeature("http://apache.org/xml/features/xinclude/fixup-base-uris", false);
DocumentBuilder builder = dfactory.newDocumentBuilder();
Document doc = builder.parse(new FileInputStream("C:/Users/admin/Desktop/parent.xml"));

TransformerFactory tf = TransformerFactory.newInstance();
Transformer transformer = tf.newTransformer();
transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "no");
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
StringWriter writer = new StringWriter();

transformer.transform(new DOMSource(doc), new StreamResult(writer));

String xmlFile;
xmlFile = writer.toString();
System.out.println(xmlFile);

parent.xml文件如下所示:

代码语言:javascript
复制
<xi:include href="child.fragment" xmlns:xi="http://www.w3.org/2001/XInclude">
</xi:include>

parent.xml和child.fragment位于同一位置C:/Users/admin/Desktop/,但java代码找不到child.fragment。

我得到了以下错误:

代码语言:javascript
复制
[Warning] Include operation failed, reverting to fallback. Resource error reading file as XML (href='child.fragment'). Reason: C:\Users\admin\Desktop\child.fragment (The system cannot find the file specified)
[Fatal Error] An include with href 'child.fragment'failed, and no fallback element was found.
Exception in thread "main" org.xml.sax.SAXParseException; An include with href 'child.fragment'failed, and no fallback element was found.
at com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(Unknown Source)
at com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(Unknown Source)
at javax.xml.parsers.DocumentBuilder.parse(Unknown Source)
at MainClass.main(MainClass.java:30)
EN

回答 1

Stack Overflow用户

发布于 2013-09-16 15:02:38

可能是程序找不到child.xml。href属性,其中包含指向要包含的文件的URL。如果使用回退,您将获得有关此问题更好信息。

代码语言:javascript
复制
<xi:include href="child.fragment" xmlns:xi="http://www.w3.org/2001/XInclude">
<xi:fallback>
    <para>
      <emphasis>FIXME: MISSING XINCLUDE CONTENT</emphasis>
    </para>
  </xi:fallback>
</xi:include>

如果使用include,则会有许多限制。请查看this link

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18821729

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档