gpt4 book ai didi

c++ - XercesDOMParser 和 XIncludes

转载 作者:数据小太阳 更新时间:2023-10-29 02:46:50 25 4
gpt4 key购买 nike

我正在尝试让 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com