当前位置: 首页 > 面试题库 >

Python XML:用“而不是”代替

苏昂雄
2023-03-14
问题内容

我正在使用Python的xml
minidom,并且一切正常,除了在文本序列中它写出&quot转义字符而不是"。如果引号出现在标签中,这当然是有道理的,但它使我在文本中感到困惑。我该如何改变?


问题答案:

查看源代码(如果需要的话,则为Python
3.2),这在_write_data()函数中进行了硬编码。您将需要修改TextNode的writexml()方法-通过对其进行子类化或简单地对其进行编辑-
使其不调用该方法,而是进行类似于仅转义<和>的操作。

如果您在程序包外部创建了一个子类(而不是复制和修改程序包以创建自己的自定义xmlminidom),则只要稍加注意,就可以使一切正常。因此,您将创建自己的TextNode(的子类),按上述方法进行修改,然后将文本添加到DOM,则将添加新类的实例(或用该类的实例替换现有的文本节点)。您将需要设置ownerDocument属性。也许最简单的方法是还继承Document并修复createTextNode()方法。

但我没有看到一种更简单的方式来做您想要的事情。最好使用更好的dom实现。

ps我不知道xml规范是否需要这种行为。更新:对http://www.w3.org/TR/2008/REC-
xml-20081126/#syntax的快速扫描表明,只有<和& 必须 被编码。



 类似资料:
  • 我正在学习使用MapStruct。 我有以下自定义映射配置,以这种方式将从JPA实体映射到DTO: 我对这个解决方案的问题是中的Java代码实际上是一个字符串,IDE(例如IntelliJ)没有检查这个“java”代码的语法。也许在重构之后,这段代码将不再工作,因为我重命名了相关字段。 如果我在表达式中添加一个检查,那么这段代码会更长,更长的代码可能会有更多的打字错误。 我可以在这里写一个真正的j

  • 问题内容: 与JNI相比,JNA似乎更易于调用本机代码。在什么情况下,您将在JNA上使用JNI? 问题答案: JNA不支持c 类的映射,因此,如果您使用的是c 库,则需要一个jni包装器 如果需要大量内存复制。例如,您调用一个返回大字节缓冲区的方法,对其中的内容进行更改,然后需要调用使用此字节缓冲区的另一种方法。这将需要您将该缓冲区从c复制到java,然后再将其从java复制回到c。在这种情况下,

  • 我正在使用Maven和Java Spark构建一个简单的WebService。 pom.xml文件: 当我尝试运行时,我的错误是: 短语使我认为我使用的java版本有问题。以前,我得到了相同的错误,但使用的是,因此我将$JAVA_HOME更改为。这是应该的吗?我的一个同事同意我的观点,即-源应该是1.8。

  • 问题内容: Javascript 1.9.3 / ECMAScript5引入了DouglasCrockford等人提倡很长时间的技术。如何在下面的代码中替换为? (假设存在)。 我能想到的最好的是: 似乎没有任何优势,所以我想我没有。我可能太新古典了。我应该如何使用来创建用户“ bob”? 问题答案: 仅具有一个继承级别,您的示例可能无法让您看到的真正好处。 通过此方法,您可以轻松实现 差异继承

  • 问题内容: 每当我读到关于使用Scala的作者通常提的是演员,而应使用(此举例)。虽然我大致了解了Actor的工作原理,但我真的很想看到一个Actor的示例,该示例被用来在一段代码中替换Java的方法修饰符(这意味着它的Scala等效项- 块)。例如,修改数据结构的内部将很高兴。 这是对Actor的很好利用,还是我被误导了? 问题答案: Actor保证一次只处理一条消息,这样就不会有两个线程访问任

  • 我是说替换 只要 在班上名列前茅。对我有用。 请给出你的建议。 使用SpringJunit4ClassRunner.class而不是MockitoJunitRunner.class