所以我試圖寫我的問題儘可能清晰的標題,但我會詳細說明情況。目前在Java中,我試圖從我創建的電子郵件模板中獲取信息。Java郵件XML - 插入變量到XML返回的數據
一旦我收到了電子郵件數據,我需要將變量注入電子郵件內容的不同部分。
因此,例如,我有3個不同的電子郵件模板用xml文件編寫。 etemplate1.xml,etemplate2,etemplate3。
到目前爲止,我正在使用以下代碼獲取信息。
String fm_subject = ""; // Formatted string of email subject
String fm_bodytext = ""; // Formatted string of email body text
String fm_bodytables = ""; // Formatted string of email body tables
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
org.w3c.dom.Document doc = dBuilder.parse(getServletContext().getResourceAsStream("/"+requestType+".xml"));
doc.getDocumentElement().normalize();
NodeList nList = doc.getElementsByTagName("emailtemplate");
Node nNode = nList.item(0);
if (nNode.getNodeType() == Node.ELEMENT_NODE) {
Element eElement = (Element) nNode;
fm_subject = eElement.getElementsByTagName("subject").item(0).getTextContent();
fm_bodytext = eElement.getElementsByTagName("bodytext").item(0).getTextContent();
fm_bodytables = eElement.getElementsByTagName("bodytable").item(0).getTextContent();
注:請求類型=將要使用的模板
XML電子郵件模板實例:
<?xml version="1.0"?>
<emailtemplates>
<emailtemplate>
<subject>
subject information
</subject>
<bodytext>
This is the Body Text
</bodytext>
<bodytable>
This Body Tables
</bodytable>
</emailtemplate>
</emailtemplates>
什麼,我需要做的是格式我得到回數據從xml文件中獲取變量。問題是,我不能在返回的數據末尾添加一個變量。
示例代碼:
USER_ID //例可變
user_code //例可變
fm_bodytext = eElement.getElementsByTagName("bodytext").item(0).getTextContent() + user_id + user_code;
這將總是追加變量的身體信息的結束。我需要在xml元素bodytext之間添加變量。
這是一個明確的例子,在我想要它的明文。
<bodytext>
This is the Body Text
hi user_id, your code is user_code
</bodytext>
希望我已經很好地解釋了我的問題。如果沒有,請讓我知道,我會盡力澄清這個問題。
謝謝!
您可以從該節點的文本內容,使用'與string.replace()',然後從XML中刪除文本節點並在其位置添加替換的字符串。不幸的是,W3C的DOM是愚蠢的,這可能有點煩人。我會考慮使用JDOM,你可以使用['Element.getText()'](http://www.jdom.org/docs/apidocs/org/jdom2/Element.html#getText()),[' Element.removeChildren()'](http://www.jdom.org/docs/apidocs/org/jdom2/Element.html#removeContent())和['Element.addContent(String)'](http:// www.jdom.org/docs/apidocs/)進行這些步驟。 – millimoose
謝謝你的洞察millimoose。我將考慮您的JDOM替代品,我會試一試。我完全忘記了字符串。取代,這是完美的,我需要什麼。 –