0

私のXMLでは

<'nodeName'>separator=\n </'/nodeName'>

DOM パーサーを使用して XML を解析しています。Java コードで値を読み取ると、値が\nとして取得されます。改行として扱われず、文字(\n)として扱われます。

私は XML 解析に非常に慣れていないため、文字ではなく改行として値を取得するために何をしなければならないかわかりません\n

私のコードから数行を追加します。申し訳ありませんが、完全なコードを追加することはできませんが、私の質問が明確であり、コード行の下にいくつかの光を追加できることを願っています.

DocumentBuilder dBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
Document doc = dBuilder.parse(file);                
XPath xPath = XPathFactory.newInstance().newXPath();
XPathExpression xPExprAdditionalInfo = xPath.compile("./nodeName");
String separator =  xPExprAdditionalInfo.evaluate(node);

どんな助けでも大歓迎です。

4

1 に答える 1

1

以下の説明で混乱が解消されることを願っています。

エスケープ シーケンス\nは、ファイル内の改行文字ではありませんXML。これは、Java が新しい行を理解する方法にすぎません。

改行文字は、下敷きのOSに依存します。詳細については、こちらをご覧ください。

2つの解決策があると思います

1. \nしたがって、問題については、文字を改行エスケープシーケンスに置き換えることができます。

separator.replaceAll("\\\\n", "\n");
  1. XMLそうする自由がある場合は、新しい行を用意してください

    <'nodeName'>separator=
     <'/nodeName'>
    
于 2013-09-23T06:49:42.510 に答える