如何在"不编辑此文件"注释后添加换行符?我试图添加带换行符的textnode,但它不起作用.
码:
import java.io.File;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
public class Main {
public static void main(String[] args) {
try {
final Document doc = DocumentBuilderFactory.newInstance().
newDocumentBuilder().newDocument();
doc.appendChild(doc.createComment(" DO NOT EDIT THIS FILE "));
final Element rootElement = doc.createElement("projects");
doc.appendChild(rootElement);
final Transformer transformer = TransformerFactory.newInstance().newTransformer();
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "2");
transformer.transform(new DOMSource(doc), new StreamResult(new File("C:/abc.xml")));
} catch ( Exception e ) {
e.printStackTrace();
}
}
}
Run Code Online (Sandbox Code Playgroud)
输出:
<!-- DO NOT EDIT THIS FILE --><projects/>
Run Code Online (Sandbox Code Playgroud)

当我运行你的代码时,我也有一个空行。您是在编辑器中查看文件,还是解析并显示它?我问是因为如果是这种情况, xml:space="preserve" 设置在您的解析器代码中可能会很奇怪。
另一种选择是将注释放在 XML 根元素本身中:
final Element rootElement = doc.createElement("projects");
doc.appendChild(rootElement);
rootElement.appendChild(doc.createComment(" DO NOT EDIT THIS FILE "));
Run Code Online (Sandbox Code Playgroud)
从几个方面来说,这更具互操作性。例如,假设您使用 xinclude 将其嵌入到文件的最终版本中。您在问题中提出的不编辑文件的通知将不包括在内。如果您将其放在根元素中,它就会(并且您可能应该将其更改为不编辑此项目元素的内容,而不是出于同样的原因说文件)。
| 归档时间: |
|
| 查看次数: |
6694 次 |
| 最近记录: |