【发布时间】:2021-12-14 14:38:08
【问题描述】:
我有大约 500 个 xml 文档,每个文档大约 20000 行。它们相互包含,完全或部分(由 xpointer 指定)
我必须弄清楚它们之间的关系。 调用 xinclude 后是否可以解析(并打印)给定文件的包含层次结构?调用历史是否存储在生成的 dom abd 中的某个位置,可从样式表访问?
对于 sample1.xml,我需要以下信息:
sample1.xml
|- sample2.xml#xpointer(/root/elem/*)
|- sample3.xml#xpointer(/root/elem/*)
请注意,我对 sampleX 不感兴趣,因为它不包含在 sample1.xml 中
sample1.xml
<root>
<xi:include href="sample2.xml#xpointer(/root/elem/*)" parse="xml"/>
</root>
sample2.xml
<root>
<elem>
<xi:include href="sample3.xml#xpointer(/root/elem/*)" parse="xml"/>
</elem>
<otherElem>
<xi:include href="sampleX.xml#xpointer(/root/elem/*)" parse="xml"/>
</otherElem>
</root>
sample3.xml
<root>
<elem>
<hi/>
<ho/>
</elem>
</root>
sampleX.xml
<root>
<elem />
</root>
https://www.w3.org/TR/xinclude/#creating-result 状态:
记录每个顶级被包含元素的包含历史 在包含历史扩展属性中。包含历史 属性是表示元素信息的列表 xi:include 递归包含级别的元素。
我的问题:
- libxml2 是否遵守规范并存储包含历史记录?
- 我可以通过哪些 API 调用(最好使用 xslt)访问包含历史记录?
- 还是我误解了规范?
任何提示表示赞赏:-)
欧克陈
【问题讨论】:
-
请提供足够的代码,以便其他人更好地理解或重现问题。
-
这是您的第一个问题,我建议您阅读stackoverflow.com/help/asking。您确实需要花时间从这个(或任何)编程论坛中获得好的结果。