Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 防止transformer.transform(源、结果)转义特殊字符_Java_Xml - Fatal编程技术网

Java 防止transformer.transform(源、结果)转义特殊字符

Java 防止transformer.transform(源、结果)转义特殊字符,java,xml,Java,Xml,我正在使用DOM解析器更新xml的节点和文本内容。为了保存DOM解析器,我使用transformer.transform方法。 下面是示例代码 String xmlText = "<uc>abcd><name>mine</name>efgh\netg<tag>sd</tag></uc>"; DocumentBuilderFactory documentBuilderFactory = DocumentB

我正在使用DOM解析器更新xml的节点和文本内容。为了保存DOM解析器,我使用transformer.transform方法。 下面是示例代码

String xmlText = "<uc>abcd><name>mine</name>efgh\netg<tag>sd</tag></uc>";
        DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
        DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
        InputSource inStream = new InputSource();
        inStream.setCharacterStream(new StringReader(xmlText));
        Document document = documentBuilder.parse(inStream);
        Node node = document.getDocumentElement();      
        node.normalize();
        NodeList childNodes = node.getChildNodes();
        for(int i=0; i<childNodes.getLength(); i++) {
            if(childNodes.item(i).getNodeType() == Node.TEXT_NODE) {
                System.out.println(childNodes.item(i).getTextContent());
                childNodes.item(i).setTextContent("123>");
            }
        }
        TransformerFactory tFactory = TransformerFactory.newInstance();
        Transformer transformer = tFactory.newTransformer();
        transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");
        transformer.setOutputProperty(OutputKeys.ENCODING, "US-ASCII");
        transformer.setOutputProperty(OutputKeys.INDENT, "yes");
        DOMSource source = new DOMSource( document );
        OutputStream xml = new ByteArrayOutputStream();
        StreamResult result = new StreamResult( xml  );

        transformer.transform( source, result );
        String formattedXml = xml.toString();
        System.out.println(formattedXml);
String xmlText=“abcd>mineefgh\netgsd”;
DocumentBuilderFactory DocumentBuilderFactory=DocumentBuilderFactory.newInstance();
DocumentBuilder DocumentBuilder=documentBuilderFactory.newDocumentBuilder();
InputSource inStream=新的InputSource();
setCharacterStream(新的StringReader(xmlText));
Document Document=documentBuilder.parse(inStream);
Node=document.getDocumentElement();
node.normalize();
NodeList childNodes=node.getChildNodes();

对于(int i=0;i使用创建的转换器

Transformer transformer = tFactory.newTransformer();
使用实现标识转换的默认样式进行初始化。这意味着它将简单地将DOM序列化为格式良好的XML文档。必要时会自动应用输出转义

如果您希望更好地控制输出,并且可能生成不符合XML文档结构的内容,可以使用自定义样式表将输出方法切换为文本。这样,您可以控制更多的结构,但在XML区域可能会犯更多错误

更多信息请访问


未能转义某些特殊字符可能会导致非法(即格式不“良好”)XML。@Henry:对于
来说确实如此,但我不确定是否必须转义
。也就是说,无论处理输出的是什么,都不应该在意…@krishna这种类型的输出适合你吗…]]>mine]>sd