- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我正在尝试让 xincludes 在现有系统中工作,该系统使用 xercesc 中的 XercesDOMParser 来解析来自客户端的传入 xml。我正在使用 Apache Xercesc v3.0.1,从输入流读取的传入 XML 是:
<?xml version="1.0" encoding="UTF-8"?>
<VisionServer xmlns:xi="http://www.w3.org/2001/XInclude">
<CompositeObject>
<xi:include href="testguioutput.xml" />
而testguioutput.xml包含
<?xml version="1.0" encoding="UTF-8"?>
<GUIOutput>
<Input>Input</Input>
<Title>IDC2_1</Title>
</GUIOutput>
现有代码使用围绕 XercesDOMParser 的包装器来解析传入的 XML,在将 setDoNamespaces 和 setDoXInclude 设置为 true 后,它尝试解析 XInclude,但我得到一个持久的“致命:包含失败并且没有在文档“{0}”错误中发现回退元素,无论我将 testguioutput.xml 放在目录结构中的哪个位置。
我在visualstudio 2008下工作,我的工作目录是默认的,并且用完了/project/debug,但是无论目标文件是在/project/还是/project/debug/,都包含失败。
最佳答案
我能够使用 Xerces 应用程序中包含的 XInclude.exe 示例应用程序扩展 xinclude 标记。为此,我使用上面的文件创建了两个文件:
测试1.xml:
<?xml version="1.0" encoding="UTF-8"?>
<VisionServer xmlns:xi="http://www.w3.org/2001/XInclude">
<CompositeObject>
<xi:include href="test2.xml"/>
</CompositeObject>
</VisionServer>
测试2.xml:
<?xml version="1.0" encoding="UTF-8"?>
<GUIOutput>
<Input>Input</Input>
<Title>IDC2_1</Title>
</GUIOutput>
在我执行的命令行中:
“XInclude.exe test1.xml test1_expanded.xml”不带引号。
生成的 test1_expanded.xml 文件:
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<VisionServer xmlns="" xmlns:xi="http://www.w3.org/2001/XInclude">
<CompositeObject>
<GUIOutput xml:base="test2.xml">
<Input>Input</Input>
<Title>IDC2_1</Title>
</GUIOutput>
</CompositeObject>
</VisionServer>
关于c++ - XercesDOMParser 和 XIncludes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2155844/
我正在尝试让 xincludes 在现有系统中工作,该系统使用 xercesc 中的 XercesDOMParser 来解析来自客户端的传入 xml。我正在使用 Apache Xercesc v3.0
我正在使用 XercesDOMParser 在 linux (c++) 中读取 xml 文件,我想防止 xml 炸弹(Billion 笑)所以我设置了这些属性: parser->setDoNamesp
我是一名优秀的程序员,十分优秀!