1

希望大家能帮忙。我有一个字符串(请记住它类似于 XML,但我的应用程序将其视为二进制字符串),其中包含文本中的多个 xml 声明。我想删除这些声明。例如

<?xml version="1.0" encoding="UTF-8"?>
<Parent>
    <?xml version="1.0" encoding="UTF-8"?>
    <Child1>
    .
    .
    </Child1>
    <?xml version="1.0" encoding="UTF-8"?>
    <Child2>
    .
    .
    </Child2>
</Parent>

omit-xml-declaration="yes" 在这种情况下将不起作用,因为它无法访问文档中的声明。除了使用 XSLT 的第一个声明之外,还有什么方法可以转义任何声明?我也许可以以某种方式使用 CDATA(但不确定这是否可行)

4

1 回答 1

0

这是使用 XSLT 无法实现的!

原因:解析器需要有效的 XML。您列出的示例代码不是有效的 XML。

解决方案:

  1. 如果可以修改生成此类 XML 的源代码,请更正它!由于第二个建议不推荐!否则,如果您别无选择,那么
  2. 通过使用字符串操作或使用正则表达式的主机程序(如 C# 或 Java)将此声明部分替换为空/空格来修改 XML。RegEx 会更有用,因为字符串模式在整个代码中总是很常见。
于 2012-12-21T08:47:20.603 回答