루비에 is_xml?(string)
과 같은 특정 문자열이 XML 형식인지 식별하는 기능이 있는지 궁금합니다.문자열의 형식이 XML인지 확인합니다.
답변
노코 기리의 parse
가 있는지 확인하기위한 시도로 <html>
을 찾는 간단한 정규식 테스트를 사용 유사한
string =~ /^s*<[^Hh>]*html/ # Probably html
뭔가, XML 선언을 찾는 출발점이 될 것입니다 : 구문 분석 할 수있는 데이터는 HTML이나 XML은
,string = '<?xml version="1.0"?><foo><bar></bar></foo>'
string.strip[/\A<\?xml/]
=> "<?xml"
nil
이 아닌 값을 반환하면 문자열에 XML 선언이 포함됩니다. 빈 문자열이 다음 단계를 속일 것이기 때문에 이것을 테스트하는 것이 중요합니다.
Nokogiri::XML('').errors.empty?
=> true
노코 기리 또한 조작 된 문서를 구문 분석하도록 시도한 후 오류의 배열을 반환 할 errors
방법이있다. 모든 크기에 대해 테스트하면 다음과 같이 도움이됩니다.
Nokogiri::XML('<foo>').errors
=> [#<Nokogiri::XML::SyntaxError: Premature end of data in tag foo line 1>]
Nokogiri::XML('<foo>').errors.empty?
=> false
Nokogiri::XML(string).errors.empty?
=> true
은 구문 적으로 유효한 문서 일 경우 true입니다.
내가 그냥 일반 문자열 대 사실 XML의 차이 말할 수 있는지 노코 기리 테스트 : 그래서
[2] (pry) main: 0> doc = Nokogiri::XML('foo').errors
[
[0] #<Nokogiri::XML::SyntaxError: Start tag expected, '<' not found>
]
을, 당신은 당신의 파일을 통해 루프는 XML 및 비로 정렬 할 수 있습니다 (를
require 'nokogiri'
[
'',
'foo',
'<xml></xml>'
].group_by{ |s| (s.strip > '') && Nokogiri::XML(s).errors.empty? }
=> {false=>["", "foo"], true=>["<xml></xml>"]}
변수에 group_by
의 결과를 할당, 당신은 당신이 아닌 XML (false
) 또는 XML을 확인할 수 해시를해야합니다 : 쉽게 -xml).
좋아! 세부 사항은 정말 도움이됩니다. – mCY
유용한 코드를 추가했습니다. –
가 루비의 String 클래스 또는 Active 지원의 문자열 확장에 그런 기능이 없다,하지만 당신은 detect errors in XML에 노코 기리를 사용할 수 있습니다
begin
bad_doc = Nokogiri::XML(badly_formed) { |config| config.strict }
rescue Nokogiri::XML::SyntaxError => e
puts "caught exception: #{e}"
end
- 1. 파이썬이 gzipped 파일이 xml인지 또는 csv인지 확인합니다.
- 2. 입력 문자열의 형식이 잘못되었습니다.
- 3. 입력 문자열의 형식이 잘못되었습니다.
- 4. 문자열의 모든 문자가 대문자인지 확인합니다.
- 5. 입력 문자열의 형식이 올바르지 않습니다.
- 6. 입력 문자열의 형식이 올바르지 않습니다.
- 7. 입력 문자열의 형식이 잘못 되었습니까?
- 8. 입력 문자열의 형식이 올바르지 않습니다.
- 9. 입력 문자열의 형식이 올바르지 않음
- 10. 입력 문자열의 형식이 올바르지 않습니다.
- 11. 입력 문자열의 형식이 올바르지 않습니다.
- 12. string.Format 입력 문자열의 형식이 C#
- 13. C# 입력 문자열의 형식이 잘못되었습니다.
- 14. 입력 문자열의 형식이 올바르지 않습니다.
- 15. "입력 문자열의 형식이 올바르지 않습니다."
- 16. 입력 문자열의 형식이 올바르지 않습니다. (
- 17. -> 입력 문자열의 형식이 잘못되었습니다.
- 18. 입력 문자열의 형식이 올바르지 않습니다.
- 19. 입력 문자열의 형식이 올바르지 않음
- 20. 입력 문자열의 형식이 올바르지 않습니다.
- 21. 입력 문자열의 형식이 올바르지 않습니다.
- 22. 입력 문자열의 형식이 올바르지 않습니다.
- 23. 입력 문자열의 형식이 올바르지 않습니다.
- 24. String이 Jdom2와 유효한 XML인지 확인
- 25. 주어진 문자열이 XML인지 여부 확인
- 26. 문자열의 첫 번째 문자가 따옴표인지 확인합니다.
- 27. 목록 항목이 문자열의 하위 문자열인지 확인합니다.
- 28. geolocation이 검색 문자열의 부분 문자열인지 확인합니다.
- 29. Django는 파이썬 문자열의 마지막 문자를 확인합니다.
- 30. String.Format() - 입력 문자열의 형식이 올바르지 않음
XML과 올바른 형식의 HTML을 구별하고 싶습니까? –
안녕하세요 틴 맨, 대답은 '아니오'입니다. 일반적인 문자열과 XML 형식의 문자열이 함께 혼합되어 있습니다. 나는 그들을 나누고 싶다. – mCY