Java Don';我不想改变&;载脂蛋白;实体到';在XML文件中

Java Don';我不想改变&;载脂蛋白;实体到';在XML文件中,java,xml,Java,Xml,我正在通过DocumentationBuilderFactory自动更改一些XML文件 但是在其中一个属性实体引用中&apos获取对的更改。。我不希望这种变化发生 docBuilderFactory.setValidating(false); docBuilderFactory.setExpandEntityReferences(false); 但似乎什么都不管用真正的问题是&apos只是一种避开撇号的方法。这就像在JavaScript中读取字符串:“\'',一旦数据被解释为字符串,解析器就会

我正在通过DocumentationBuilderFactory自动更改一些XML文件 但是在其中一个属性实体引用中
&apos获取对
的更改。
。我不希望这种变化发生

docBuilderFactory.setValidating(false);
docBuilderFactory.setExpandEntityReferences(false);

但似乎什么都不管用

真正的问题是
&apos
只是一种避开撇号的方法。这就像在JavaScript中读取字符串:
“\''
,一旦数据被解释为字符串,解析器就会展开转义字符(XML中的实体)。也就是说,从raw characters到=的解析步骤基本上包含了这种解释,没有好的解决方法

可能真正的问题是转换后有效XML的输出,问题在于原始输入字符串被解析,实体被扩展为撇号。幸运的是,这是一个简单的解决方案:如果您知道某些属性可能有撇号,您可以将输出步骤编码为包含搜索和替换过程,其中
转换为


(这类似于在JavaScript中写出原始JavaScript字符串,并且必须将撇号转换回
\'

这更像是一种黑客行为,但您可以在处理之前将其转义:

myXmlString = myXmlString.replaceAll("'", "'").

然后处理器将展开
&;载脂蛋白
&apos

有帮助吗?我试着做normalise…和attr.getNamedItem(somenode).getTextContent()但仍然是相同的问题我想到了这一点…但问题是我使用attr.getNamedItem(somenode).getNodeValue()这让我改变了“因此无法识别简单”或'问题是我使用的是DocumentBuilder docBuilder=docBuilderFactory.newDocumentBuilder();Document doc=docBuilder.parse(新文件(“book.xml”);然后我获取任何节点或属性的stringContent,我没有得到字符串内容,我得到的是解析的内容……如果我得到了字符串内容,我可以利用它