14. august 2008 - 18:47
Der er
10 kommentarer og 1 løsning
Strengbehandling, pille en bestemt del ud
Hej Eksperter, Jeg står i en situation hvor jeg har noget xml der skal behandles. Sagen er den at jeg får nogen som ligner det her tilbage <xml><node1>bla</node1><node2>T</node2><node3>værdi</node3><node4>værdi</node4><node5>værdi</node5><node6>værdi</node6></xml> Det her xml bruger jeg i forbindelse med noget AJAX. Nu er det bare således at jeg gerne vil undlade at returnerer node3-6 hvis node 2 er F. Hvordan gør jeg lige det?
Annonceindlæg tema
Cloud & AI
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
14. august 2008 - 18:49
#1
<xml><node1>bla</node1><node2>T</node2><node3>værdi</node3><node4>værdi</node4><node5>værdi</node5><node6>værdi</node6></xml>
14. august 2008 - 18:49
#2
<xml><node1>bla</node1><node2>T</node2><node3>værdi</node3><node4>værdi</node4> <node5>værdi</node5><node6>værdi</node6></xml>
14. august 2008 - 18:51
#3
altså så jeg ender op med <xml><node1>bla</node1><node2>F</node2></xml>
14. august 2008 - 18:51
#4
Det kan sikker laves med noget indexOf og substring men det paeneste maa vaere: laes fra Streng til Document test vaerdien af node2 hvis F slett node3-6 skriv fra Document til String
14. august 2008 - 19:06
#5
Hvis vi nu siger at String s="<xml><node1>bla</node1><node2>T</node2><node3>værdi</node3> <node4>værdi</node4> <node5>værdi</node5><node6>værdi</node6></xml>";
14. august 2008 - 19:30
#6
Som arne_v skriver kan du godt gøre følgende: String str = "<xml><node1>bla</node1><node2>F</node2><node3>værdi</node3><node4>værdi</node4>"; if(str.contains("<node2>F</node2>")){ Scanner scan = new Scanner(str); str = scan.findWithinHorizon("<xml>[^\\Q<node3>\\E]*",0) + "<\\xml>"; }
14. august 2008 - 19:47
#7
XML maaden er: String s="<xml><node1>bla</node1><node2>T</node2><node3>værdi</node3><node4>værdi</node4><node5>værdi</node5><node6>værdi</node6></xml>"; DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); DocumentBuilder db = dbf.newDocumentBuilder(); Document doc = db.parse(new InputSource(new StringReader(s))); if(XPathAPI.selectSingleNode(doc.getDocumentElement(), "//xml/node2/text()").getNodeValue().equals("F")) { doc.getDocumentElement().removeChild(XPathAPI.selectSingleNode(doc.getDocumentElement(), "//xml/node3")); doc.getDocumentElement().removeChild(XPathAPI.selectSingleNode(doc.getDocumentElement(), "//xml/node4")); doc.getDocumentElement().removeChild(XPathAPI.selectSingleNode(doc.getDocumentElement(), "//xml/node5")); doc.getDocumentElement().removeChild(XPathAPI.selectSingleNode(doc.getDocumentElement(), "//xml/node6")); } OutputFormat fmt = new OutputFormat(); StringWriter sw = new StringWriter(); XMLSerializer ser = new XMLSerializer(sw, fmt); ser.serialize(doc); String s2 = sw.toString();
15. august 2008 - 06:08
#8
Det ser super ud. Tak
15. august 2008 - 09:52
#9
Det virker bare som det skal. Takker og bukker
15. august 2008 - 17:01
#10
Læg endelig et svar arne_v. Det er bare super cool
15. august 2008 - 17:35
#11
OK
Kurser inden for grundlæggende programmering