问题标签 [xml-entities]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
json - Camel Json 到 XML,XML 实体呢?
使用 Camel 转换,Json 到 XML,与
并应用转换:
我确实可以将Json转换成XML,但是没有xml实体转换,
通常,如果某些文本包含“&”这个字符,它不会被重写为“&”,
有什么办法可以做到这一点?
xml - 使用 perl LibXML Element->getAttribute() 而不在值中扩展 unicode 实体
我目前正在尝试创建一个使用 LibXML 处理 SVG 字体数据的 perl 脚本。
在 SVG 字体中,每个字符都被定义为具有 unicode 属性的字形元素,该属性以 unicode 实体的形式定义其 unicode 地址;像这样:
我想做的部分事情是获取每个字形元素的 unicode 属性的值,然后像字符串一样处理它。但是,当我使用 Element->getAttribute('unicode'); 针对字形节点,它返回一个显示为占位符矩形的“宽字符”,这让我相信它将 unicode 实体扩展为一个 unicode 字符并返回它。
当我创建我的解析器时,我将 expand_entities 设置为 0,所以我不确定我还能做些什么来防止这种情况。我对 XML 处理相当陌生,所以我不确定我是否真的了解正在发生的事情,或者这是否应该是可以预防的。
这是一个代码示例:
注意:如果我运行 print $myGlyph->toString();,输出中的 unicode 实体不会被扩展,因此我得出结论,扩展发生在 getAttribute 方法中。
java - 更新 XML 文件时缺少实体声明 - Java
我有一个像上面那样的 XML。
我正在使用下面的代码来解析 XML 和更新属性。
我正在使用 DOM Parser 来解析 XML 文件并使用 Java 中的 Transformer 更新内容。
更新 XML 文件时,DOCTYPE和&product-info; 和&item-info; 被删除。
如何使用 Java 而不是任何第三方库来保留值?
xml - XSL 实体定义被忽略 - 为什么?
我正在编写一个将 XML 转换为 markdown 文本的 XSL 文件。我想将 HTML 实体转换为它们自己,例如“®” 在 XML 中的一段文本中将产生“®” 在输出文件中。我不想翻译“®” 到其十六进制等效值,这可能会扰乱下游流程。
在我看来,下面的声明应该做我需要的,当紧跟在 <?xml...?> 标记之后:
但是,当我处理 XML 文件时,XSL 处理器 (Saxonica HE) 在每次使用实体时都会发出如下消息:
我做错了什么?
xml - Spark XML 似乎不适用于 XML 实体(例如 &myentity;)
我正在使用 Spark XML 解析包含一些用户定义实体的大型文档。这是文件中的一个简单片段
可以在 XML 文档中找到的内联 DTD 中正确定义了实体,例如这里
但是,在模式检测阶段解析失败......
原因似乎是用户定义的实体:当我转义它们(例如&unc;
)时,一切都会再次运行。
我该如何解决这个问题?
html - XML 字符实体不解析
我正在使用 server.xml 文件...
情况1:
在catalina.properties
我已经宣布app.name
案例二:
问题是为什么案例 2 有效而案例 1 无效?为什么万一 1 XML 实体不解析?
即输出是:
java - Java 11 XML 解析器在 XHTML 1.1 文档上调用 normalizeDocument() 时暂停并显示实体错误
我在 Windows 10 上使用 Java 11 (AdoptOpenJDK 11.0.5 2019-10-15)。我有一些想要处理的旧 XHTML 1.1 文件。它们采用以下一般形式:
为了避免解析器等待连接到 Internet,我安装了一个自定义程序来加载存储在程序资源中的EntityResolver
已知实体(从它们的公共 ID,例如)。-//W3C//ELEMENTS XHTML Inline Style 1.0//EN
此类DefaultEntityResolver
还打印调试消息,指示解析器正在加载哪些实体。
这是我解析的基本形式:
由于 中的调试消息DefaultEntityResolver
,我可以看到解析器按此顺序加载了以下实体。
-//W3C//DTD XHTML 1.1//EN
(http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd
)-//W3C//ELEMENTS XHTML Inline Style 1.0//EN
(http://www.w3.org/MarkUp/DTD/xhtml-inlstyle-1.mod
)-//W3C//ENTITIES XHTML Datatypes 1.0//EN
(http://www.w3.org/TR/xhtml11/DTD/xhtml-datatypes-1.mod
)-//W3C//ENTITIES XHTML Modular Framework 1.0//EN
(http://www.w3.org/MarkUp/DTD/xhtml-framework-1.mod
)-//W3C//ENTITIES XHTML Datatypes 1.0//EN
(http://www.w3.org/TR/xhtml11/DTD/xhtml-datatypes-1.mod
)-//W3C//ENTITIES XHTML Qualified Names 1.0//EN
(http://www.w3.org/MarkUp/DTD/xhtml-qname-1.mod
)-//W3C//ENTITIES XHTML Intrinsic Events 1.0//EN
(http://www.w3.org/MarkUp/DTD/xhtml-events-1.mod
)-//W3C//ENTITIES XHTML Common Attributes 1.0//EN
(http://www.w3.org/MarkUp/DTD/xhtml-attribs-1.mod
)-//W3C//ENTITIES XHTML 1.1 Document Model 1.0//EN
(http://www.w3.org/MarkUp/DTD/xhtml11-model-1.mod
)-//W3C//ENTITIES XHTML Character Entities 1.0//EN
(http://www.w3.org/MarkUp/DTD/xhtml-charent-1.mod
)-//W3C//ENTITIES Latin 1 for XHTML//EN
(http://www.w3.org/MarkUp/DTD/xhtml-lat1.ent
)-//W3C//ENTITIES Symbols for XHTML//EN
(http://www.w3.org/MarkUp/DTD/xhtml-symbol.ent
)-//W3C//ENTITIES Special for XHTML//EN
(http://www.w3.org/MarkUp/DTD/xhtml-special.ent
)-//W3C//ELEMENTS XHTML Text 1.0//EN
(http://www.w3.org/MarkUp/DTD/xhtml-text-1.mod
)-//W3C//ELEMENTS XHTML Inline Structural 1.0//EN
(http://www.w3.org/MarkUp/DTD/xhtml-inlstruct-1.mod
)-//W3C//ELEMENTS XHTML Inline Phrasal 1.0//EN
(http://www.w3.org/MarkUp/DTD/xhtml-inlphras-1.mod
)-//W3C//ELEMENTS XHTML Block Structural 1.0//EN
(http://www.w3.org/MarkUp/DTD/xhtml-blkstruct-1.mod
)-//W3C//ELEMENTS XHTML Block Phrasal 1.0//EN
(http://www.w3.org/MarkUp/DTD/xhtml-blkphras-1.mod
)-//W3C//ELEMENTS XHTML Hypertext 1.0//EN
(http://www.w3.org/MarkUp/DTD/xhtml-hypertext-1.mod
)-//W3C//ELEMENTS XHTML Lists 1.0//EN
(http://www.w3.org/MarkUp/DTD/xhtml-list-1.mod
)-//W3C//ELEMENTS XHTML Editing Elements 1.0//EN
(http://www.w3.org/MarkUp/DTD/xhtml-edit-1.mod
)-//W3C//ELEMENTS XHTML BIDI Override Element 1.0//EN
(http://www.w3.org/MarkUp/DTD/xhtml-bdo-1.mod
)-//W3C//ELEMENTS XHTML Ruby 1.0//EN
(http://www.w3.org/MarkUp/DTD/xhtml-ruby-1.mod
)-//W3C//ELEMENTS XHTML Presentation 1.0//EN
(http://www.w3.org/MarkUp/DTD/xhtml-pres-1.mod
)-//W3C//ELEMENTS XHTML Inline Presentation 1.0//EN
(http://www.w3.org/MarkUp/DTD/xhtml-inlpres-1.mod
)-//W3C//ELEMENTS XHTML Block Presentation 1.0//EN
(http://www.w3.org/MarkUp/DTD/xhtml-blkpres-1.mod
)-//W3C//ELEMENTS XHTML Link Element 1.0//EN
(http://www.w3.org/MarkUp/DTD/xhtml-link-1.mod
)-//W3C//ELEMENTS XHTML Metainformation 1.0//EN
(http://www.w3.org/MarkUp/DTD/xhtml-meta-1.mod
)-//W3C//ELEMENTS XHTML Base Element 1.0//EN
(http://www.w3.org/MarkUp/DTD/xhtml-base-1.mod
)-//W3C//ELEMENTS XHTML Scripting 1.0//EN
(http://www.w3.org/MarkUp/DTD/xhtml-script-1.mod
)-//W3C//ELEMENTS XHTML Style Sheets 1.0//EN
(http://www.w3.org/MarkUp/DTD/xhtml-style-1.mod
)-//W3C//ELEMENTS XHTML Images 1.0//EN
(http://www.w3.org/MarkUp/DTD/xhtml-image-1.mod
)-//W3C//ELEMENTS XHTML Client-side Image Maps 1.0//EN
(http://www.w3.org/MarkUp/DTD/xhtml-csismap-1.mod
)-//W3C//ELEMENTS XHTML Server-side Image Maps 1.0//EN
(http://www.w3.org/MarkUp/DTD/xhtml-ssismap-1.mod
)-//W3C//ELEMENTS XHTML Param Element 1.0//EN
(http://www.w3.org/MarkUp/DTD/xhtml-param-1.mod
)-//W3C//ELEMENTS XHTML Embedded Object 1.0//EN
(http://www.w3.org/MarkUp/DTD/xhtml-object-1.mod
)-//W3C//ELEMENTS XHTML Tables 1.0//EN
(http://www.w3.org/MarkUp/DTD/xhtml-table-1.mod
)-//W3C//ELEMENTS XHTML Forms 1.0//EN
(http://www.w3.org/MarkUp/DTD/xhtml-form-1.mod
)-//W3C//ELEMENTS XHTML Document Structure 1.0//EN
(http://www.w3.org/MarkUp/DTD/xhtml-struct-1.mod
)
请注意,其中一些实体不再存在于指定的 URL;尽管如此,我DefaultEntityResolver
已经将这些实体存储并键入了它们的公共 ID,因此仍将它们提供给解析器。
到目前为止,一切都很好。但是当我立即调用时document.normalizeDocument()
,程序会暂停然后打印:
请注意,这不是我打印这些错误的程序;显然是里面的东西document.normalizeDocument()
。此外,这里还有另外两个好奇心:
- 如果我从 Eclipse 中运行我的应用程序,则不会发生这种情况。
- 如果我禁用我的网络连接,这不会发生。
我最好的猜测是document.normalizeDocument()
没有使用EntityResolver
我在文档生成器中安装的自定义。因为某些实体不再存在于其预期的 URL(例如http://www.w3.org/TR/xhtml11/DTD/xhtml-datatypes-1.mod
),它们无法加载,因此指示的引用实体永远不会被定义。但是,Web 服务器需要很长时间才能响应实体丢失(因为您可以手动测试),这使得程序似乎暂停了。这也可以解释为什么当我的网络连接被禁用时错误消息没有出现;我猜无法加载任何外部实体,立即失败,但这不被视为错误。(不过,这些都不能解释为什么它在 Eclipse 中没有暂停或错误消息。)
事实上,DOMConfiguration
文档提示我需要设置某种resource-resolver
参数,尽管我不确定为什么DOMConfiguration
不默认使用我在用于解析 XML 文档的原始文档构建器中设置的实体解析器。
为了让事情有点奇怪,我将上面的 XHTML 1.1 框架文档放在我的资源中,并创建了一个与上面的代码完全相同的单元测试,然后是document.normalizeDocument()
,测试通过,没有停顿也没有错误,即使是从命令行!
但是,如果我for(int i = 0; i < 100; i++)
在单元测试中放置一个循环;加载、解析和规范化文档 100 次(但使用相同的DocumentBuilderFactory
);我的单元测试完全崩溃了分叉的单元测试JVM!
所以我想我想避免document.normalizeDocument()
,但我欢迎对这种行为进行任何澄清。
php - DOMDocument::load():在实体中找不到命名空间默认前缀
我正在用 PHP DOMDocument 解析一些 XML。这是我的代码:
我在 .xml 的开头声明了一个实体文件:
实体文件如下所示:
在我的 .xml 中,我像这样使用这些实体:
现在,在解析文件和通过 xslt 和 css 文件进行转换方面一切顺利,实体除外。他们只是被忽略了。打开 php_error_log 标志,我得到这个:
(第 28 行index.php
是load('../poems_xml/'.$pid.'.xml')
指令所在的位置)。有人可以阐明我应该检查/添加关于我的实体的内容吗?
我正在使用 PHP 5.6.40。
xslt - 使用 XSLT 取消引用实体
我有使用嵌入式实体声明的 XML 文件。在结果文件中,我需要将实体名称替换为它们指向的实际文件。但是不能在 XSLT 样式表中指向 AFAIK 实体,因为它们应该由 XML 解析器处理。
示例源文件:
我需要的是一个将实体引用更改为实际href的文件:
我不能依赖在 DTD 中声明的实体,因为每个文件都有不同的实体指向不同的文件。
也许这是微不足道的,但我找不到一种方法来获取嵌入式文档的特定声明。