从没有根节点的文件中提取后向XML添加根节点

从没有根节点的文件中提取后向XML添加根节点,xml,parsing,Xml,Parsing,我有记录方法调用的代码。因此,它可以通过在末尾添加日志,我让它在没有根节点的情况下进行日志记录。。。所以结构是这样的 <method> <handle id="0"/> <timestamp>0</timestamp> <signature>int[] path.getSelectedObjectIds()</signature> <arguements> <

我有记录方法调用的代码。因此,它可以通过在末尾添加日志,我让它在没有根节点的情况下进行日志记录。。。所以结构是这样的

<method>
    <handle id="0"/>
    <timestamp>0</timestamp>
    <signature>int[] path.getSelectedObjectIds()</signature>
    <arguements>
        <argument>rO0ABXA=</argument>
    </arguements>
    <return>value</return>
</method>

<method>
    <handle id="0"/>
    <timestamp>0</timestamp>
    <signature>int path.getObjectIDFromKey(String)</signature>
    <arguements>
        <argument>Selectable1</argument>
        <argument>2</argument>
    </arguements>
    <return>value</return>
</method>

0
int[]path.getSelectedObjectId()
rO0ABXA=
价值
0
int path.getObjectedFromKey(字符串)
可选择的1
2.
价值
所以现在我试着用这样的东西来读取这个文件进行回放

        DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
        DocumentBuilder db = dbf.newDocumentBuilder();
        Document doc = db.parse(new File("methodLog.txt"));

        // normalize text representation
        doc.getDocumentElement().normalize();

        NodeList listOfMethods = doc.getElementsByTagName("method");
        int totalMethods = listOfMethods.getLength();
        System.out.println("Number of methods: " + totalMethods);

        for (int i = 0; i < listOfMethods.getLength(); i++) {
           ...
DocumentBuilderFactory dbf=DocumentBuilderFactory.newInstance();
DocumentBuilder db=dbf.newDocumentBuilder();
documentdoc=db.parse(新文件(“methodLog.txt”);
//规范化文本表示
doc.getDocumentElement().normalize();
NodeList listOfMethods=doc.getElementsByTagName(“方法”);
int totalMethods=listOfMethods.getLength();
System.out.println(“方法数:“+totalMethods”);
for(int i=0;i

还有一个错误是文档必须格式正确。有没有一种快速的方法可以立即在文件中当前存在的内容周围添加一个根标记(比如“方法”)?

我在将htmltext转换为xml时遇到了同样的问题。它是

<p align="left"><font..>text</font></p><p align="left"><font ..>text</font></p>
文本

我将其解析为字符串并添加了标记:

var s:String = xmlfile.toXmlString(); //don't know what it is in your language I use AS3
var newString:String = "<html>" + s + "</html>"; //adding the tags
xmlfile = new XML(newString); //parse new string into xml
var s:String=xmlfile.toXmlString();//不知道我用的是什么语言AS3
var newString:String=“+s+”;//添加标记
xmlfile=newxml(newString);//将新字符串解析为XML
因此,新xml的输出是:

<html>
     <p align="left">
          <font..>text</font>
     </p>
     <p align="left">
          <font ..>text</font>
     </p>
</html>

文本

文本

这是一个简单的方法让它工作。希望这能帮助你