问题标签 [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.

0 投票
1 回答
747 浏览

c# - 使用 XmlDocument 获取 InnerText 或 InnerXml 时保留 XML 实体引用

我正在尝试获取InnerText或使用InnerXmlXml ,同时我想保留.nodeXmlDocument& ' "

但是,即使我尝试InnerXml,它也只会保留而&不是'"

我想知道它发生的确切原因以及解决这个问题的方法。

例如,假设我有一个内部带有文本的 Xml 节点,并且当我使用(或)"'Cancel' & 'Abort'"读取该节点时重新运行,它必须给我与字符串输出完全相同的信息。InnerXmlInnerText

但是当我尝试这样做时,它会返回,"'Cancel' & 'Abort'" 这意味着它只保留&

笔记:

这是我的 XLIFF(XML) 文件中的内容,因此在读取此 XLIFF(XML) 文件时,我想检索两个节点内的文本,因为它们现在可见,无需任何排他转换或任何处理。

问题是我拥有的 XLIFf(XML) 数据,既包含'"也包含'"并且我的目标是将这些实体引用检测为错误,因为我们的数据中不应该包含它。换言之,我们的数据中仅允许'"应允许。

0 投票
1 回答
2247 浏览

php - 带有解码实体的 SimpleXML

如何使 SimpleXML 在 PHP 中用它们各自的字符替换 HTML/XML 实体?

假设有这个 XML 文档,在一个字符串中:

显然,我希望 SimpleXml 解码&&. 默认情况下它不这样做。我尝试了这两种方法,但都没有奏效:

解码 XML 实体的最佳方法是什么?我猜 XML 解析器应该这样做,我想避免html_entity_decode在解析之前运行(实际上,它也不起作用)。这可能是字符串编码的问题吗?如果是这样,我该如何跟踪和修复它?

0 投票
2 回答
1215 浏览

php - PHP SimpleXMLElement 没有在实体中添加引号

我正在编写一个 PHP 脚本来生成一些 xml 文档,但我在 SimpleXML 和引号方面遇到了一些问题。

如果我有这样的代码:

如果我 print_r $xml obj 然后我得到这个:

似乎一旦进入对象,它就会使实体回到各自的角色。但是,当我在对象上调用 asXML() 以获取 XML 时,它向我显示:

它使 & 回到一个实体,但它似乎将引号保留为字符。它不应该将它们全部转换为实体吗?

0 投票
3 回答
146 浏览

xml - 编码的 HTML 字符

首先,我离 HTML 专家很近,如果说我是新手,我会很紧张,但我目前正在处理一些在 Web 服务 XML 文档中返回的 html。其中一个存储值为我提供了我负责修改的网站的 HTML 编码。如您所见,下面的所有代码都有一堆特殊字符,它们被替换为代码(即 < 等)。如果我要自己编写一些代码,或者我只需要把它吸起来,自己查找所有字符代码,然后手动替换它们,是否有任何地方可以为我进行翻译?此外,如果有人知道 HTML 的 this 方法被称为什么,那也会很有帮助。

谢谢!

0 投票
2 回答
2985 浏览

xml - 为什么 XmlParser 将我的字符十六进制代码字符串转换为 unicode?

在我的 Grails 应用程序中,我使用 Groovy 的XmlParser来解析 XML 文件。我的 XML 文件中的一个属性的值是一个字符串,它等于一个字符十六进制代码。我想将该字符串保存在我的数据库中:

&#xD1;

不幸的是,属性方法返回Ñ字符,而实际存储在数据库中的是c391. 当该字段被读回时,我还会得到不想要的Ñ字符。

如何将十六进制代码作为字符串存储在我的数据库中,并确保它也作为十六进制代码被读回?

更新#1:

这对我来说是个问题的原因是,一旦我将 XML 文件读入我的数据库,我必须能够完全按原样重建它。另一个问题是有问题的字段并不总是字符十六进制代码。它可能只是一些任意字符串。

更新#2:

我想字符如何存储在数据库中并不重要,只要我能以扩展的十六进制代码格式将其写回即可。我正在使用 Groovy MarkupBuilder从数据库中重建我的 XML 文件,但我不清楚为什么默认情况下不会发生这种情况。

更新#3:

我覆盖getTableTypeString了我的自定义 MySQL 方言,这似乎对某些事情有所帮助。至少现在我传递给 MySQL 的值是存储在数据库中的值。

我还创建了自己的groovy.util.XmlParser版本。我的版本几乎与我更改groovy.util.XmlParser的方法完全相同:startElement

对此:

这允许将十六进制代码元素的准确文本存储在数据库中。

现在有两个新问题,可能三个。

  1. 使用存储在数据库中的确切值重新创建文件。到目前为止,我一直在使用MarkupBuilder,但这是对 & 符号进行额外编码,导致值&#xD1;被写出,因为&amp;#xD1; 我可能可以通过MarkupBuilder手动放弃和构建我的 XML 字符串来解决这个问题,但我宁愿不这样做。

  2. 使用 Saxon-HE 9.4 处理器在 XML 文件上运行 XSLT 转换会导致某些十六进制代码值&#xFF;更改为类似ÿ的内容,而其他类似内容&#x99;则保持不变。

  3. 我不确定这是否会成为问题,但是当我重新创建文件时,我希望它处于ANSI编码状态,因为这是用于原始文件的编码。

0 投票
1 回答
328 浏览

xml - Perl XML-SAX-Expat 外部实体位置

我正在使用 XML-Simple 和 XML-SAX-Expat 来解析带有外部实体的文档。我声明我的实体如下:

我从同一目录中的另一个文件中引用。

但是,它正在我当前的工作目录中搜索文件,而不是根文档的位置。

我怎样才能让它使用根文档的目录而不是我的 CWD?

0 投票
1 回答
175 浏览

php - 解码 XML 实体的方法?

我正在使用 PHP 5.3 生产服务器,因此html_entity_decode($, ENT_XML1)不可用。

我的问题很简单:例如转换为&#159;字节的方法是什么?

0 投票
2 回答
1287 浏览

java - 如何在 Java 中解码 XHTML 和/或 HTML5 实体?

我有一些包含XHTML字符实体的字符串:

有没有简单的方法来解码实体?(我正在使用Java)

我目前正在StringEscapeUtils.unescapeHtml4(myString.replace("&apos;", "\'"))用作临时黑客。可悲的是,org.apache.commons.lang3.StringEscapeUtilsunescapeHtml4unescapeXML,但没有unescapeXhtml

编辑:我确实想处理无效的 XML,例如我想要 "&&xyzzy;" 解码为“&&xyzzy;”

编辑:我认为 HTML5 具有与 XHTML 几乎相同的字符实体,所以我认为 HTML 5解码器也可以。

0 投票
2 回答
613 浏览

php - 非转义 XML 编码字符

嗨,我得到了响应,而不是 STD xml。如何使用 PHP 将其转换为 XML ..

谢谢,曼格什

0 投票
2 回答
2551 浏览

java - 对于 3.0 以上的 Unicode 版本,如何将 Java 字符串转换为 xml 实体?

要将 java 字符转换为 xml 实体,我可以对字符串中的每个字符执行以下操作:

但是,根据其他 stackoverflow 问题,这仅适用于 Unicode 3.0。

如果我使用 UTF-8 阅读器读取字符串,那么该字符串可能包含通过 Unicode 6.0 工作的格式的字符(因为根据 javadoc,Java 7 支持 Unicode 6.0)。

一旦我有了那个字符串,我怎么能把它写成 xml 实体?理想情况下,我会使用一些 api,以便在新版本的 unicode 出现时继续工作。